問題タブ [event-wait-handle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
249 参照

c# - スレッドを一時停止および再開する方法

典型的なプロデューサー/コンシューマーの問題があり、2 つのスレッドを同期しようとしています。C# Compact Framework で Suspend() と Resume() に代わるものを見つけたいです。どちらも CF :( でサポートされていません。 EventWaitHandle に基づいており、次のようなものを使用する例をいくつか見つけました。

しかし問題は、AutoResetEvent も Compact Framework の一部ではないことです。このような Producer/Consumer の問題を EventWaitHandle を使用して解決する別の方法があるかどうかを知りたいです。AutoResetEvent が EventWaitHandle から派生していることは知っています。EventWaitHAndle の他のサブクラスはどれですか?

0 投票する
0 に答える
78 参照

c# - EventWaitHandle シグナルの理由

EventWaitHandleへの呼び出しによって信号が送信されたか、Set();タイムアウトになったかを判断する方法はありますか? 例:

私が考えることができる唯一のオプションはbool、毎回変化する変数を保持しWaitOne()Set()呼び出すことですが、フレームワークがよりエレガントなソリューションを持っているかどうか疑問に思っていました

0 投票する
0 に答える
285 参照

c# - IIS にデプロイした後、Web アプリケーションの EventWaitHandle が機能しない

Web サービス (WS) とコンソール アプリケーション (CA) があります。

WS はデータを受け取り、データベースに挿入します。CA はこのデータを読み取り、操作を実行します。同期は次のように機能します。WS には次のコードがあります。

newDataServiceMessageSignal が global.asax ファイルで宣言されている場所

また、application_start では、次の値が与えられます。

CA には、常に true である while ループと、EventWaitHandle の WaitOne があります。

私の問題は、IIS Express での実行中 (Visual Studio でのデバッグ中) にはこのコードは正常に動作しますが、アプリケーションを公開してデプロイしてから実行すると失敗することです。WS がシグナルを設定しても、CA は継続的に待機します (データベースのコミットとその成功の前に、WS がシグナルをステートメントとして設定すると想定しています)。なぜこのように振る舞うか、私には理解できません。

どんな助けでも感謝します、ありがとう。

0 投票する
1 に答える
343 参照

c# - フォーム全体をブロックする EventWaitHandle

私はかなり長い間周りを見回してきましたが、解決策はありません..

私が達成したいのは、1 つのスレッドを一時停止するために EventWaitHandle クラスを使用することです。

そこで、フォームに 2 つのボタンを作成します。最初のボタンはメッセージを送信してから一時停止し、2 番目のボタンは最初のボタンのスレッドの一時停止を解除し、別のメッセージを送信します。そのように:

しかし、スレッドが でブロックされるとすぐにwh.WaitOne()、2 番目のボタンを押すことや、少なくともフォームを閉じることなど、フォーム全体で何もできなくなります。

私は何を間違えましたか?私が見つけた例と私のコードの間に違いが見つからないように見えるからです。

0 投票する
0 に答える
133 参照

c# - EventWaitHandle を開くために使用される名前を取得するにはどうすればよいですか?

プロセスがイベントに「サブスクライブ」してから「サブスクライブ解除」できるクロスプロセス イベント アーキテクチャを実装しようとしています。

EventWaitHandle を使用した私の最初のテストは有望です (ただし、それらについての否定的なコメントをいくつか読みましたが、今は脇に置いておいてください)。

これらには名前が付けられており、実際には OpenExisting を使用して名前で開かれているため、EventWaitHandle クラスに Name プロパティがないことに少し驚きました。 .

では、これらのもののコレクションを考えると、それぞれの作成に使用された名前を確認する方法はありませんか?