ich eine Anwendung, bei der eine Klasse I ein Windows Form
und System.Threading.Timer
bin initialisiert.Ausgabe mit System.Threading.Timer und Modal Showdialog()
Wenn die timer
, die für einige IPC
basierten Zeug hält prüft, einen bestimmten Wert feststellt, signalisiert er eine event
in der gleichen Klasse, die dann ShowDialog()
im Dialog zuvor initialisiert aufruft.
Leider stoppt diese ShowDialog()
Modal
, stoppt den Timer.
Ich hatte den Eindruck, dass System.Threaded.Timer
wurde in einem anderen Thread zum aufrufenden Thread erstellt und so würde der Timer weiterhin im Hintergrund ausgeführt werden.
Bearbeiten - einige Code
public delegate void EventHandler();
class someClass
{
WrapperForm dlg = null;
public void CallToChildThread(Object stateInfo)
{
AutoResetEvent autoEvent = (AutoResetEvent)stateInfo;
//Check IPC
//Fire event
_show.Invoke();
}
public someClass()
{
public static event EventHandler _show;
initializeDialog(); // Initialize the dialog. Standard new
var autoEvent = new AutoResetEvent(false);
var stateTimer = new System.Threading.Timer(CallToChildThread,
autoEvent, 1000, 250);
_show += new EventHandler(eventCheck);
}
void eventCheck()
{
//If some condition
dlg.ShowDialog(); //Timer stops
}
}
Wie dieses Problem gelöst werden könnte?
Wenn Sie uns sehen könnten, was Sie (einige Code) versucht haben, wäre das toll. – EpicKip
Ein Modal stoppt keinen Timer für mich o.O – EpicKip
Code hinzugefügt. – user1173240