Пример #1
0
        public void ThreadTest()
        {
            // テキストボックスアペンデントテキストデリゲート生成
            DlgtAppendTxt dlgtAppendTxt = textBox1.AppendText;

            // テキストボックスを操作するのにインヴォークを使用する必要があるかどうか
            tb1InvokeRequired = textBox1.InvokeRequired.ToString();

            // 2秒に一回書き込み
            for (int i = 1; i <= 5; i++)
            {
                #region パターン001_デリゲート変数
#if PATTERN001
                Invoke(dlgtAppendTxt, "bt1" + Environment.NewLine);
#endif
                #endregion

                #region パターン002_ラムダ式
#if PATTERN002
                Invoke((Action) delegate
                {
                    textBox1.AppendText("bt1" + Environment.NewLine);
                });
#endif
                #endregion


                Thread.Sleep(1000);
            }
        }
Пример #2
0
        public void ThreadTest()
        {
            // テキストボックスアペンデントテキストデリゲート生成
            DlgtAppendTxt dlgtAppendTxt = textBox1.AppendText;

            // 2秒に一回書き込み
            for (int i = 1; i <= 30; i++)
            {
                // フラグが停止の場合
                if (pauseFlag == true)
                {
                    // スレッドを無期限で待機
                    autoResetEvent.WaitOne();
                }

                // 終了フラグが終了の場合
                // 一時停止後の終了に対応するため一時停止メソッドの後に記述
                if (endFlag == true)
                {
                    // 処理終了
                    return;
                }

                // テキストボックス操作をインヴォーク
                Invoke(dlgtAppendTxt, "bt1" + Environment.NewLine);
                Thread.Sleep(1000);
            }
        }