/// <summary> /// Initiates an operation to send IM message to the remote side. /// </summary> /// <param name="callback">Callback method.</param> /// <param name="state">User state.</param> /// <returns>Async result reference.</returns> public IAsyncResult BeginSendImMessage(string message, AsyncCallback callback, object state) { if (this.State != ConversationModelState.Established) { throw new InvalidOperationException(ExceptionResource.InvalidState); } SendImMessageAsyncResult asyncResult = new SendImMessageAsyncResult(this, message, callback, state); asyncResult.Process(); return(asyncResult); }
/// <summary> /// Waits for corresponding begin operation to complete. /// </summary> /// <param name="asyncResult">Async result from the corresponding begin method.</param> public void EndSendImMessage(IAsyncResult asyncResult) { if (asyncResult == null) { throw new ArgumentException(ExceptionResource.InvalidAsyncResult); } else { SendImMessageAsyncResult sendMessageAsyncResult = asyncResult as SendImMessageAsyncResult; if (sendMessageAsyncResult == null) { throw new ArgumentException(ExceptionResource.InvalidAsyncResult); } else { sendMessageAsyncResult.EndInvoke(); } } }