public RuntimeAsyncResult DequeueCallback() { RuntimeAsyncResult asyncResult = null; lock (_callbacksLock) { if (_callbacks.Count > 0) { asyncResult = _callbacks.Dequeue(); } } return asyncResult; }