問題タブ [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 投票する
1 に答える
251 参照

c# - EventWaitHandler を使用して特定のスレッドを一時停止する方法

このプロセスには2つのスレッドがあります。ボタン (開始、一時停止、一時停止、再開) を持つフォーム。アプリケーション全体を使用して一時停止するたびにEWH.WaitOne()フリーズ (一時停止) し、再開ボタンを押すことができなくなります

フォームの実行中にのみ 2 つのスレッドを一時停止する方法はありますか? (私のコードのスレッド 1 と 2)

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

.net - .NETEventWaitHandleはすべてのスレッドに信号を送ります

呼び出しclose()たすべての信号を送信しますか?threadsWaitOne()

そうでない場合、これを行うための最良の方法は何ですか?

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

c# - ループを実行しているスレッドにループから抜け出して何か他のことをするように指示する適切な方法は何ですか?

次のコードには、メインスレッドがウェイトハンドルをリセットした後、ワーカースレッドがすぐに終了したり、最終アクションを実行したりしないという欠点があります。代わりに、ループの次の反復に到達するまで実行を継続し、その時点で無期限にブロックされます。

次のコードには、Abort()メソッドを使用するという欠点がありますが(絶対に避けるべきだと言う人がいます)、私が探していることを正確に実行します。メインスレッドがそうするように指示したらすぐに、最後の操作を実行して終了します。

どちらのソリューションも理想的ではないので、私が探している機能を実装するための適切な方法は何ですか?

(.net 4.5のタスクを含まないソリューションが望ましいです)

0 投票する
5 に答える
4870 参照

c# - EventWaitHandle.Set が呼び出されたかどうかを知る方法

EventWaitHandleどちらが呼び出されたかを知る方法はありますか。

2 つの異なるシステム全体のイベント名を持つ 2 つのカスタム クラスがあります。

私がそれらを持っていた理由は、どの機能をトリガーするかを区別するためです。

私が現在抱えている問題は、どのイベントがトリガーされたかをどのように区別できるかということです。

したがって、_ew1.Set()が呼び出された場合は、 を実行する必要がありProcess1ます。

_ew2.Set() が呼び出された場合は、実行する必要がありProcess2ます。

更新: 詳細情報を追加しました。

メイン スレッドは Windows サービスです。これは、Web アプリケーションとデスクトップ アプリケーションによって通知されます。したがって、基本的にサービスは、Web アプリケーションまたはデスクトップ アプリケーションからイベントをトリガーしたユーザーを特定する必要があります。Web アプリケーションの場合は SP1 を実行し、Windows アプリケーションの場合は SP2 を実行します。

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

c# - イベントを単一のプロセスに送信する

現在EventWaitHandle、Windows フォーム アプリからのウィンドウを持たないネイティブ プロセスのクリーン シャットダウンをトリガーするために を使用しています。これらのプロセスを複数同時に実行している場合、イベントを設定するとすべてが停止します。選択した単一のプロセスにイベントを送信する方法はありますか? Processそれぞれの変数を保持します。

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

c# - threadPool を使用せずにスレッドの束で多数のプロセスを実行する方法 & 処理に EventWaitHandler を使用する方法

複数のスレッドを実行する必要があります.1つのスレッドが終了したら、別のスレッドを開始します.問題は、すべてのプロセスを同時に開始することです.(この条件はうまく機能していないようです WaitHandle.WaitAny(events);)

1: 20 個のスレッドが実行されている場合、20 番目のスレッドから 1 つのスレッドが解放されると、21 番目のスレッドが開始されます。

2: スレッドプールを使用せずに、EventWaitHandler を使用して実行できます。

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

c# - WinFormApps と ConsoleApps : BackgroundWorker と EventWaitHandle

.NET 2.0、C#、および VS2010 を使用した WinformApplication と ConsoleApplication の 2 つのプログラムがあります。

2 つのプログラムは、backgroundworker と EventWaitHandle のタスクが同じです。

  1. BGW の作成
  2. 仕事する
  3. RunWorkerCompleted { .. event.Set(); ..}
  4. 待機 event.waitone()

コンソール アプリは問題なく動作します。ただし、フォーム アプリは機能しません。ここに完全なコードがあります。試してみて、何が問題なのか教えてください。

WinFormApplication コードは次のとおりです。

ConsoleApplication コードは次のとおりです。

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

c# - .NET システム全体の EventWaitHandle 名に使用できる文字

システム全体の名前付けに制限はありますEventWaitHandleか? URL を名前として使用したいのですが、奇妙な文字が大量に含まれている可能性があります。サイレントに失敗したり、その他のエラーが発生したりしたくないので、既知の不正な文字があるかどうかを確認してください。これらの名前のために。

私はこれを自分で見つけようとしましたが、私のグーグルフーはうまくいきませんでした。