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

執筆者:

関連記事

sqlserver

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

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

ルートの追加と削除(Windows Linux)

windowsのルートの追加・削除 route add [オプション] [宛先IP] mask [mask] [gateway] metric [metric値] if [if値] オプションの-pを …

windows

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

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

windows

telnetでポートが開いていることを確認する

インターネット上でテストをする際には、 ルーターでpingを返さないことはざらにあります。 そんな場合でも、相手のアプリが指定したポートだけは開けていなくては話になりません。 そんな場合にはtelne …

WindowsのeclipseからLinuxのPHPをリモートデバッグする(1)Linuxにxdebuをインストールする

Windowsを使用するのはグラフィカルで便利な開発環境があるためです。 そしてサーバーとしてのLinuxは秀逸です。 PHPもフリーで簡易ですし、Apache・MySQL・Linuxとの相性も最高で …