internal IAsyncResult BeginTerminateMohChannel(AcdServiceChannel channel, AsyncCallback userCallback, object state) { TerminateMoHChannelAsyncResult ar = new TerminateMoHChannelAsyncResult(this, channel, userCallback, state); lock (_syncRoot) { if (_state == MusicOnHoldServerState.Started) { ThreadPool.QueueUserWorkItem((waitState) => { var tempAr = waitState as TerminateMoHChannelAsyncResult; tempAr.Process(); }, ar); } else { throw new InvalidOperationException("AcdMusicOnHoldServer is shutting down or in an invalid state to perform this action."); } } return(ar); }
internal void EndTerminateMohChannel(IAsyncResult ar) { TerminateMoHChannelAsyncResult result = ar as TerminateMoHChannelAsyncResult; result.EndInvoke(); }