[STAThread] Problem

04/12/2008 - 18:12 von Steffen Mangold | Report spam
Hallo,
mal sehen ob jemand von euch das zu lösen weiß. Sitz jetzt hier seit zwei
Tagen davor und mir brennt schon dir Rühbe.

Also Ausgang des Problems ist folgendes:
Es gibt eine Klasse (nicht von mir kann sie also nicht àndern) diese ist
eine threadContext abhànhige Klasse. Das heißt denn ich sie aufrufe erzeugt
sie mit hilfe des Singelton-Patterns eine Instanz für mich, diese ist dann
nur aus dem Context gültig in dem sie auch erstellt wurde.

Problem:
Nun ergibt sich folgendes Problem. Wenn ich die Instanz aus dem
ApplicationMainThread erzeugen lasse geht das problemlos. Auch der Zugriff
klappt reibungslos.
Problematisch wird es wenn ich Methoden die lange dauern Threaded aufrufen
möchte.
Da der ApplicationMainThread ja unter [STAThread] làuft (muss er auch) dann
kann ich nicht mehr auf die oben angesprochene Klasse zugreifen, da der
erstellte Thread in einem anderen Context làuft.

Frage:
Meine Frage lautet also, kann ich Klassen (egal ob static oder nicht)
ausserhalb des ApplicationMainThread erstellen lassen. Oder hat irgendjemand
ein schönes Pattern für so ein Problem??? :( ich weiß ist sehr speziell
 

Lesen sie die antworten

#1 Frank Dzaebel
04/12/2008 - 20:00 | Warnen spam
Hallo Steffen,

Problematisch wird es wenn ich Methoden die lange
dauern Threaded aufrufen möchte.
Da der ApplicationMainThread ja unter [STAThread] làuft (muss er
auch) dann kann ich nicht mehr auf die oben angesprochene Klasse
zugreifen, da der erstellte Thread in einem anderen Context làuft.
Frage:

Meine Frage lautet also, kann ich Klassen (egal ob static oder nicht)
ausserhalb des ApplicationMainThread erstellen lassen. Oder hat
irgendjemand ein schönes Pattern für so ein Problem??? :( ich weiß
ist sehr speziell



Ich bin nicht sicher, ob ich Dich verstanden habe.
Du kannst natürlich Klassen-Instanzen aussenhalb des
MainThreads erstellen lassen.
Ist denn die Klasse von Control abgeleitet, oder führt einen
ExecutionContext oder SynchronisationContext nach aussen,
oder hat eine Invoke-Methode?

Vielleicht meinst Du auch einfach nur etwas wie:

[Bearbeiten von Steuerelementen aus Threads]
http://dzaebel.net/ControlInvoke.htm


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen