Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        /// <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));
        }