猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

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
-,

執筆者:

関連記事

apple

iPhoneにはハードウエアの安全な取り外しが表示されない!?

Windows8にしたところ、 iPhoneをUSBで接続しても、ハードウエアの安全な取り外しが表示されませんでした。 どうやらiPhoneはメディアとしては扱われず、「ハードウェアを安全に取り外して …

windows

タスクスケジュールではネットワークドライブの割り当てを使ってはいけない

タスクスケジュールに別サーバーへログファイルを移動するバッチを登録する、などよくある話です。 例えば、Aサーバーにはログがたまっていて、Aサーバー上では毎朝3時にBサーバーのバックアップフォルダにログ …

sqlserver

SQL Server Management Studio でテーブルが変更できない

私は以前はOracleをメインで使用し、そしてここ数年間はMySQLをメインで使用しています。SQL Serverは少しかじった程度といえるでしょう。 こんな私が選択したのはSQL Server Ma …

windows

Windowsで時刻の同期間隔を設定する

Windowsで時刻の同期間隔を設定するにはレジストリを更新するだけです。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\T …

tracertで表示されるIPとは

ネットワークエンジニアでなくても ルートの確認に使用したことがあるだろう tracert(windows) traceroute(linux) のIPはどこのIPなのでしょうか。 ネットワークが変わる …