Esempio n. 1
0
        /**
         *  @brief      非同期終了時にで呼ばれるように登録して使用するメソッド
         *  @param[in]  IAsyncResult    非同期実行したdelegate
         *  @return     void
         *  @note       EndInvoke で 非同期実行した Methodのreturn値を取得し textBox1 に設定
         */
        private void MyCallBackMethod(IAsyncResult ar)
        {
            string_int_delegate dlgt = (string_int_delegate)ar.AsyncState;


            //textBox1.Text = dlgt.EndInvoke(ar);
            SetTextBox1(dlgt.EndInvoke(ar));        // 結果を取得
        }
Esempio n. 2
0
        /**
         *  @brief      非同期処理開始 ボタン処理
         *  @param[in]  object  sender
         *  @param[in]  EventArgs    e
         *  @return     void
         *  @note       BeginInvoke で myAsyncCls.originalMethod 開始
         */
        private void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;

            // 別クラスの Methodを非同期実行
            MyAsyncClass        myAsyncCls = new MyAsyncClass();
            string_int_delegate dlgt       = new string_int_delegate(myAsyncCls.originalMethod);

            // 非同期処理呼び出し、終了時の callback Method登録
            dlgt.BeginInvoke(3000, new AsyncCallback(MyCallBackMethod), dlgt);


            // 自クラスの Methodを非同期実行
            string_int_delegate dlgt2 = new string_int_delegate(SeltOriginalMethod);

            // 非同期処理呼び出し、終了時の callback Method登録
            dlgt2.BeginInvoke(6000, new AsyncCallback(MyCallBackMethod), dlgt2);
        }