2011-04-20 2 views
2

Les contextes créent des "conteneurs" subdivisés dans des domaines pour des objets ayant des besoins spéciaux (ou dans le cas d'objets qui n'ont pas de besoins spéciaux, le contexte par défaut est utilisé).Quelle est la relation entre la classe ExecutionContext et les "contextes"?

J'ai du mal à comprendre comment la classe ExecutionContext se rapporte à ces contextes. En quoi sont-ils liés ou différents, etc.?

Répondre

2

ExecutionContext est un conteneur pour les informations relatives à l'exécution d'un thread. Donc, c'est à peu près un contexte spécialisé. Il a quelques propriétés intéressantes, mais elles ne sont probablement pas applicables à d'autres types de contextes, ce qui est acceptable puisque différents contextes peuvent avoir des utilisations différentes.

De MSDN:

La classe ExecutionContext fournit un récipient unique pour toutes les informations pertinentes pour un fil logique de exécution. Cela inclut le contexte de synchronisation , le contexte d'appel et le contexte de synchronisation .

La classe ExecutionContext fournit la fonctionnalité pour le code utilisateur capture et transférer ce contexte dans asynchrones définis par l'utilisateur points. Le Common Language Runtime garantit que le Contexte d'exécution est transféré de façon cohérente sur points asynchrones définis à l'exécution dans le processus géré.

Un contexte d'exécution est l'équivalent géré d'un appartement COM. Au sein de un domaine d'application, le contexte d'exécution entier doit être transféré chaque fois qu'un thread est transféré. Cette situation se produit lors des transferts effectués par la méthode Thread.Start, la plupart des opérations de pool de threads, et le fil de Windows Forms marshaling par la pompe de message de Windows. Il ne se produit pas dans des opérations de pool de threads non sécurisées (telles que la méthode UnsafeQueueUserWorkItem ), qui ne transfèrent pas la pile compressée .

Vous pouvez trouver plus d'informations sur ExecutionContext sur le lien ci-dessus.

Questions connexes