public static ManualResetEvent Delay(TimeSpan aExecAfterTimeout, Action aAction, string name) { var localExit = new ManualResetEvent(false); try { new Thread(() => { try { localExit.WaitOne(aExecAfterTimeout); aAction(); } catch (Exception Error) { Log(Error.ToString()); } }) { IsBackground = true, Name = name }.Start(); } catch (Exception ThreadError) { Log(ThreadError.ToString()); } return(localExit); }
public static ManualResetEvent Intervall(int aMillisecondsIntervall, Action aAction, string name) { var localExit = new ManualResetEvent(false); try { new Thread(() => { bool isLocalExit = false; while (!isLocalExit) { try { aAction(); } catch (Exception Error) { Log(Error.ToString()); } isLocalExit = localExit.WaitOne(aMillisecondsIntervall); } }) { IsBackground = true, Name = name }.Start(); } catch (Exception ThreadError) { Log(ThreadError.ToString()); } return(localExit); }