C#, C♯, C#相談室 Part76at TECHC#, C♯, C#相談室 Part76 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト200:デフォルトの名無しさん 12/10/16 23:51:33.00 二度とくるな 201:177 12/10/17 00:15:34.00 たいーまつかってリフレッシュ 202:デフォルトの名無しさん 12/10/17 08:13:23.38 スレッドについて教えてください。 ここのサイトのサンプルプログラムでスレッドを一時中断したり再開するテストしています。 http://note.chiebukuro.yahoo.co.jp/detail/n30692 サンプルではスレッド内でフォームコントロールにアクセスできるようにするのにControl.CheckForIllegalCrossThreadCalls = false;を 指定するやり方をつかってたのですが、それを以下のようにデリゲートを使ったやり方に変更してみたところテキストボックスの更新処理 が重すぎて実用に耐えないプログラムになってしまいました。 デリゲートの使い方はこれであってるのでしょうか? delegate void countTextBoxDelegate(int i); //テキストボックスにカウント処理 void countTextBox(int i) { textBox1.Text += i.ToString() + " "; System.Threading.Thread.Sleep(1000); } //============ // スレッド用メソッド public void ThreadMethod() { // スレッドに行なわせたい処理を記述する。 // ここでは、単純にループ文を行なわせるものとする。 for (int i = 0; i < 1000000000; i++) { // Set(シグナル状態になるまで)を待つ if (StoppedFlag) { are.WaitOne(); // 自動的に非シグナル状態になる } countTextBoxDelegate d = new countTextBoxDelegate(countTextBox); //デリゲートを使ってテキストボックスにアクセス this.Invoke(d, new object[] { i }); //するように変更。 } } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch