public IAsyncResult BeginInvoke(Action action, AsyncCallback userCallback, object stateObject) { var asyncInfo = new AsyncInvocationInfo(this, action, userCallback, stateObject); lock (syncLastEvent) { asyncInfo.PrevWaitHandle = lastEvent; lastEvent = asyncInfo.AsyncWaitHandle; } ThreadPool.QueueUserWorkItem(InvokeAsync, asyncInfo); return asyncInfo; }
public IAsyncResult BeginInvoke(Action action, AsyncCallback userCallback, object stateObject) { var asyncInfo = new AsyncInvocationInfo(this, action, userCallback, stateObject); lock (syncLastEvent) { asyncInfo.PrevWaitHandle = lastEvent; lastEvent = asyncInfo.AsyncWaitHandle; } ThreadPool.QueueUserWorkItem(InvokeAsync, asyncInfo); return(asyncInfo); }