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="board">投稿先の板</param>
        /// <param name="thread">投稿する内容</param>
        /// <param name="callback">投稿完了時に呼ばれるコールバック</param>
        /// <param name="state">ユーザー指定のオブジェクト</param>
        /// <returns></returns>
        public virtual IAsyncResult BeginPost(BoardInfo board, PostThread thread,
                                              AsyncCallback callback, object state)
        {
            if (board == null)
            {
                throw new ArgumentNullException("board");
            }

            if (methodR != null ||
                methodT != null)
            {
                throw new InvalidOperationException("一度に複数の非同期呼び出しは出来ません");
            }

            methodT = new PostThreadHandler(Post);
            return(methodT.BeginInvoke(board, thread, callback, state));
        }