13 Stimmen

Wie man eigene Daten in den ExecutionContext einfügt

Ich weiß, dass bei der parallelen Ausführung einer Methode durch den Aufruf von BeginInvoke() oder ThreadPool.QueueUserWorkItem(...) das .NET-Framework das ExecutionContext-Objekt erfasst, das Code Access Security-Informationen und einige andere Dinge enthält.

Was ich möchte, ist in ExecutionContext einige Daten, die von meiner parallelen Methode benötigt wird, aber muss auch im Moment der Warteschlange der Aufgabe erfasst werden.

Das Problem ist, dass ich nicht immer die Kontrolle über den Code habe, der diese parallele Aufgabe erstellt, so dass ich eine Möglichkeit finden muss, diese Daten zu speichern, bevor ich diesen externen Code aufrufe. Deshalb habe ich an die ExecutionContext-Klasse gedacht.

Gibt es eine Möglichkeit, einen Zustand der parallelen Aufgabe zu übergeben, wenn ich nicht immer die Kontrolle über den Code habe, der die Arbeit zwischen den Threads aufteilt?

15voto

SeeR Punkte 2069

Ich habe es gefunden:

CallContext.LogicalSetData(...)

( Dokumentation )

y

CallContext.LogicalGetData(...)

( Dokumentation )

0voto

John Saunders Punkte 159011

Ich weiß nicht, inwiefern das mit ExecutionContext aber früher konnten wir kontextgebundene Objekte erstellen. Siehe Kontext Klasse . Ignorieren Sie die Tatsache, dass diese spezielle Klasse für Infrastruktur ist - der Artikel ist ein Ausgangspunkt, um über Kontexte zu lernen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X