C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 39 を表示中)
■20218 / )  Re[1]: Thread.Sleepについて
□投稿者/ れい (615回)-(2008/06/07(Sat) 16:21:06)
2008/06/07(Sat) 16:29:49 編集(投稿者)

No20216 (組込系の人 さん) に返信
> 以下のプログラムを実行すると、CPUが100%に近い状態になってしまいます。
> コメントアウトしてるThread.Sleep(1)を入れると負荷がなくなります。
> メインスレッドはループ処理の中でApplication.DoEvents()
> しとけばOKと思っていたのですが、何か勘違いをしているのでしょうか?
> どなたか教えていただけますでしょうか。よろしくお願いいたします。

Application.DoEventsは、キューに入ってるメッセージを処理する関数で、
休む関数ではありません。

Thread.Sleep(1)がない場合、
スレッドはどこで休むのですか?

CPUに空き時間が生じ、
まだ休んでいないスレッドがあるなら、
そのスレッドを実行しようとするのは当然ですよね。

追記。

おせっかいですが、
Application.DoEventsについては
http://forums.microsoft.com/msdn-ja/showpost.aspx?postid=2381944&siteid=7&sb=0&d=1&at=7&ft=11&tf=0&pageid=1
http://202.218.219.132/bbs/phpBB/viewtopic.php?topic=44349&forum=7&16
この辺でいろいろ書きました。参考になれば。
返信 編集キー/


管理者用

- Child Tree -