Abfragen ob Forms schon offen

29/08/2008 - 17:06 von Stephan | Report spam
Hallo zusammen,

ich möchte über Invoke eine Methode in einer Formklasse aufrufen.
Dieses Form làuft in einem anderen Thread, weil es den Fortschritt beim Start
einer Appliaktion anzeigt. Jetzt kann es jedoch vorkommen, dass die
Initialisierung
der Applikation schon schneller durch ist, als das Fenster geöffnei ist.
Dann wird ein Event mit folgendem Code aufgerufen:

if (_startStopForm == null)
{
while (_startStopForm == null)
{
Thread.Sleep(10);
};
}

StartStopForm.StopTimerAndFinishToolbarAndCloseDelegate del
= new
StartStopForm.StopTimerAndFinishToolbarAndCloseDelegate(_startStopForm.StopTimerAndFinishToolbarAndClose);

_startStopForm.Invoke(del, null);


Mir gefàllt jedoch nicht das aktive Warten über die While-schleife.
Weiß jemand zufàllig ein eleganteres Vorgehen ?

Danke und Grüße
Stephan
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
29/08/2008 - 18:48 | Warnen spam
"Stephan" schrieb:
ich möchte über Invoke eine Methode in einer Formklasse aufrufen.
Dieses Form làuft in einem anderen Thread, weil es den Fortschritt beim
Start
einer Appliaktion anzeigt.



Das ist nicht sinnvoll.

Besser: Alle Formulare in einem Thread laufen lassen und blockierende
Operationen in Threads auslagern. Aus diesen Threads kann dann mittels
'Control.BeginInvoke' & Co. auf die Formulare/Steuerelemente zugegriffen
werden.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen