Wie kann ich Nachrichten an einen STA-Thread senden, in dem eine Nachrichtenpumpe ausgeführt wird?
Also folgtdieseIch habe mich entschieden, ein COM-Objekt auf einem dedizierten STA-Thread explizit zu instanziieren. Experimente haben gezeigt, dass das COM-Objekt eine Nachrichtenpumpe benötigt, die ich durch Aufrufen erstellt habeApplication.Run()
:
private MyComObj _myComObj;
// Called from Main():
Thread myStaThread = new Thread(() =>
{
_myComObj = new MyComObj();
_myComObj.SomethingHappenedEvent += OnSomthingHappened;
Application.Run();
});
myStaThread.SetApartmentState(ApartmentState.STA);
myStaThread.Start();
Wie poste ich Nachrichten von anderen Threads an die Nachrichtenpumpe des STA-Threads?
Hinweis: Ich habe die Frage der Kürze halber stark bearbeitet. Einige Teile von @Servys Antwort scheinen jetzt nicht miteinander zu tun zu haben, aber sie betrafen die ursprüngliche Frage.