Laden...

Ausführung von einem Thread zum anderen übergeben (ohne Control.Invoke)

Letzter Beitrag vor 14 Jahren 6 Posts 1.363 Views
Ausführung von einem Thread zum anderen übergeben (ohne Control.Invoke)

Hi.

Gibt es eine Möglichkeit, von einem Thread in einen Anderen zu wechseln, ohne Control.Invoke zu benutzen?

Es geht um ein COM-Interface, über das Daten ausgetaushct werden sollen. Der entsprechende RPC-Server möchte aber immer im Hintergrundthread angesprochen werden. Wenn ich jetzt aus der GUI heraus einen Aufruf starte, bräuchte ich sowas wie Thread.Invoke. 😁

Gibts da irgend eine Möglichkeit?

Gruß, Lars

aus einem hintergrund thread angesprochen werden interpretiere ich mal als ein thread der nciht STAThread ist.

demnach würde ein einfaches Thread.Start(methodeDieDenAufrufMacht) ausreichen.

Naja damit erstelle ich doch aber einen neuen Thread oder? Ich habe ja schon einen, der läuft bzw. in dem das COM-Objekt initialisiert wurde. In den will ich wieder rein.

dann stell ihm die daten irgendwo bereit und informiere ihn, das er sie sich abholen soll.

Hallo Lars83,

der empfangende Thread muss aktiv so programmiert sein, dass er überhaupt was empfangen kann. Wenn er das ist, lässt sich die Steuerung z.B. per SyncQueue übertragen (SyncQueue <T> - Eine praktische Job-Queue).

Siehe auch Eleganteste Methode: Aus Thread auf Controls einer Form zugreifen.

herbivore

Das sieht sehr interessant aus, probier ich mal aus.

Vielen Dank.