Eine Methode zum aufrufen eines Befehls mit Wartezeit in Millisekunden
private void runTimeOutAction<T>(double msTimeOut, Action act, ref T variableSet, T escapeValue)
{
using (var bgWorker = new System.ComponentModel.BackgroundWorker())
{
// Umsetzung der Ausführung
bgWorker.DoWork += (s, ev) => act();
DateTime start = DateTime.Now;
bgWorker.RunWorkerAsync();
while ((DateTime.Now - start).TotalMilliseconds < msTimeOut)
{
// Zeitintervall des Wartens (25mal pro Sekunde)
System.Threading.Thread.Sleep(40);
}
// Eine Variable die einen Abschließenden Wert haben soll
variableSet = escapeValue;
}
}
/*
// Aufruf wie in diesem Beispiel:
int hr = 1;
runTimeOutAction(500, () => Pause(), ref hr, 0);
*/
Kommentare zum Snippet