Windows

c# EventWaitHandle が反応しない!?

投稿日:2013年9月23日 更新日:

スレッドを利用したプログラムで、
スレッド側での処理を待たせて、必要に応じて開始する場合には、
1.特定のフラグをポーリングする
2.EventWaitHandle を利用する。
の2つが考えられると思います。
ポーリングは処理の無駄に感じてしまうのでEventWaitHandleを使用していました。
が、しばらくたつとEventWaitHandleをset()してもWaitOneのところから開始しない状態になりました。

よくよく調べてみると、EventWaitHandle.WaitOne()にはどうやらタイムアウトがあるようです。
EventWaitHandleを使って別スレッドで処理の開始を待たせる場合には十分注意が必用です。

ちなみにタイムアウトをなしにする場合にはEventWaitHandle.WaitOne(-1)とします。

Gooleアドセンス用336

Gooleアドセンス用336

-Windows
-,

執筆者:

関連記事

windows

Window8.1の外付けハードディスクの外し方

私はいつも外付けハードディスクやUSBメモリの取り外しには、 画面右下にあるUSBアイコンより「○○○の取り外し」 を選択してからとりはずしていました。 しかし、気づけば何故か外付けハードディスクの文 …

windows

Windows10 OneDriveが同期されない

Windows10でOneDriveが同期されなくなっていました OneDriveでは緑のチェックのついているものは同期されています。つまり、クラウドにもPC(などのデバイス)にも同じものがあります。 …

windows

コマンドプロンプト(バッチ)でファイル毎の処理をする

forでファイル毎の処理をする コマンドプロンプトのforには強力な/Fオプションがあります。 set yyyy=%date:~0,4% set mm=%date:~5,2% set dd=%date …

windows

コマンドプロンプト(バッチ)で日時を使用する

ログやファイル名にやっぱり付けたいのが日時です。 INDEX1 文字列の抜き出し2 文字列の置き換え3 日時を取得するバッチ 文字列の抜き出し c:\>echo %date% %time% 20 …

windows

Windowsのライセンス認証でこのプロダクトキーは既に使用されていますと表示される

自作PCでマザーボードを交換しました。 OSはvistaです。 するとコンピューター>プロパティ のライセンス認証をしようとすると、 『このプロダクトキーは既に使用されています』 と表示されて認証でき …