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

わんくま同盟

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

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


(過去ログ 44 を表示中)
■23524 / )  Thread.Sleepについて
□投稿者/ ともいま (1回)-(2008/08/18(Mon) 11:46:23)

分類:[VB.NET/VB2005] 

開発環境:WinXP Pro、使用言語:VB.NET2003

複数スレッドを作成し、各々のスレッドで無限ループにThread.Sleepを用いて
定期的に処理させるシステムを構築したのですが、
とあるシステムで2秒周期で処理させるため、
Thread.Sleep(2000)を設定しておいたのですが、
このSleep部分で2秒で制御が返らない場合が稀に発生しています。
このSleep部分の前後にタイムスタンプを残す仕組みを作って
実行したところ、ほとんどが2秒なのですが、稀に4秒とか5秒というのがありました。
どうも、原因を調べると他のスレッドの状態が影響しているようです。
このシステムでは、他のスレッドでエラーが発生したタイミングでたまに
発生しているようですが。

このスレッドの優先度をHIGHESTにしても変わりませんでした。

Thread.Sleepは指定した秒数で必ず制御が戻ると思っていたのですが、
必ずしもそうではないのでしょうか?
また、必ず指定した秒数で制御を戻す方法はないのでしょうか?

返信 編集キー/


管理者用

- Child Tree -