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); } }
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); } }