private static void OnTimerCallback(object state) { AsyncWaiter asyncWaiter = (AsyncWaiter)state; asyncWaiter.timerCallbackCalled = true; if (Interlocked.CompareExchange(ref asyncWaiter.waitResult, 1, 0) == 0) { asyncWaiter.Complete(false); } }
private IAsyncResult BeginWaitPendingOperation(TKey key, TimeSpan timeout, AsyncCallback callback, object state) { List <AsyncWaiter> asyncWaiters; if (!this.pendingOperations.TryGetValue(key, out asyncWaiters)) { asyncWaiters = new List <AsyncWaiter>(); this.pendingOperations.Add(key, asyncWaiters); } AsyncWaiter asyncWaiter = new AsyncWaiter(timeout, callback, state); asyncWaiters.Add(asyncWaiter); return(asyncWaiter); }
private static IAsyncResult BeginWaitPendingOperation(int key, TimeSpan timeout, AsyncCallback callback, object state) { List <AsyncWaiter> asyncWaiters; if (!Microsoft.ServiceBus.Messaging.NetworkDetector.pendingOperations.TryGetValue(key, out asyncWaiters)) { asyncWaiters = new List <AsyncWaiter>(); Microsoft.ServiceBus.Messaging.NetworkDetector.pendingOperations.Add(key, asyncWaiters); } AsyncWaiter asyncWaiter = new AsyncWaiter(timeout, callback, state); asyncWaiters.Add(asyncWaiter); return(asyncWaiter); }
private void EndWaitPendingOperation(IAsyncResult result) { AsyncWaiter.End(result); }