void startDelegate() { if (flag != null) { flag.WaitOne(); } doCallback.Invoke(); Thread.Sleep(10); signalFinishedCallback.Invoke(this); }