Holen Sie sich SynchronizationContext aus einem bestimmten Thread

Scheine ich nicht zu finden, wie man die SynchronizationContext einer bestimmten Thread:

Thread uiThread = UIConfiguration.UIThread;
SynchronizationContext context = uiThread.Huh?;

Warum sollte ich das brauchen?

Da muss ich post zu den UIThread von verschiedenen spots alle über die front-end-Anwendung. So definierte ich eine statische Eigenschaft in einer Klasse genannt UIConfiguration. Ich habe diese Eigenschaft in der Program.Main Methode:

UIConfiguration.UIThread = Thread.CurrentThread;

In diesem Augenblick kann ich sicher sein, ich habe das richtige thread ist, aber ich kann nicht eine statische Eigenschaft wie

UIConfiguration.SynchronizationContext = SynchronizationContext.Current

weil die WinForms-Implementierung der Klasse noch nicht installiert wurde. Da jeder thread hat seinen eigenen SynchronizationContext, muss es möglich sein, rufen Sie es aus einem bestimmten Thread Objekt, oder bin ich völlig falsch?

  • Zu einem späteren Zeitpunkt (nach der WinForms-Umsetzung geladen hat), kann man den UI-thread Synchronisation Kontext so: (ungetestet) var context = (SynchronizationContext)someUiControl.Invoke(new Func<SynchronizationContext>(() => SynchronizationContext.Current)); und cache für die spätere Verwendung.
  • Sieht kreativ. Ich bräuchte eine Steuerung für das aber, was noch schlimmer ist, als brauchte Sie die SynchronizationContext-Objekt.
  • Weiß nicht warum aber mein link zu dieser Frage von mir "Ist der Satz aus einem Buch ", wird Der aktuelle SynchronizationContext ist eine Eigenschaft des aktuellen Threads der" richtige"ist?" die nicht in Verwandte oder Verknüpfte Abschnitte auf der rechten Seitenleiste, so dass ich es in diesem Kommentar...also, hat er sich danach
InformationsquelleAutor chiccodoro | 2010-11-05
Schreibe einen Kommentar