/// <summary> /// 投稿が完了するまで待機 /// </summary> /// <param name="ar"></param> public virtual void EndPost(IAsyncResult ar) { if (ar == null) { throw new ArgumentNullException("ar"); } if (methodR != null) { methodR.EndInvoke(ar); } else if (methodT != null) { methodT.EndInvoke(ar); } else { throw new InvalidOperationException("非同期呼び出しが行われていません"); } methodR = null; methodT = null; }
/// <summary> /// 非同期でメッセージを投稿 /// </summary> /// <param name="header">投稿先のスレッド</param> /// <param name="res">投稿する内容</param> /// <param name="callback">投稿完了時に呼ばれるコールバック</param> /// <param name="state">ユーザー指定のオブジェクト</param> /// <returns></returns> public virtual IAsyncResult BeginPost(ThreadHeader header, PostRes res, AsyncCallback callback, object state) { if (header == null) { throw new ArgumentNullException("header"); } if (methodR != null || methodT != null) { throw new InvalidOperationException("一度に複数の非同期呼び出しは出来ません"); } methodR = new PostResHandler(Post); return(methodR.BeginInvoke(header, res, callback, state)); }