問題タブ [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.
c# - EventWaitHandler を使用して特定のスレッドを一時停止する方法
このプロセスには2つのスレッドがあります。ボタン (開始、一時停止、一時停止、再開) を持つフォーム。アプリケーション全体を使用して一時停止するたびにEWH.WaitOne()
フリーズ (一時停止) し、再開ボタンを押すことができなくなります
フォームの実行中にのみ 2 つのスレッドを一時停止する方法はありますか? (私のコードのスレッド 1 と 2)
.net - .NETEventWaitHandleはすべてのスレッドに信号を送ります
呼び出しclose()
たすべての信号を送信しますか?threads
WaitOne()
そうでない場合、これを行うための最良の方法は何ですか?
c# - ループを実行しているスレッドにループから抜け出して何か他のことをするように指示する適切な方法は何ですか?
次のコードには、メインスレッドがウェイトハンドルをリセットした後、ワーカースレッドがすぐに終了したり、最終アクションを実行したりしないという欠点があります。代わりに、ループの次の反復に到達するまで実行を継続し、その時点で無期限にブロックされます。
次のコードには、Abort()メソッドを使用するという欠点がありますが(絶対に避けるべきだと言う人がいます)、私が探していることを正確に実行します。メインスレッドがそうするように指示したらすぐに、最後の操作を実行して終了します。
どちらのソリューションも理想的ではないので、私が探している機能を実装するための適切な方法は何ですか?
(.net 4.5のタスクを含まないソリューションが望ましいです)
c# - EventWaitHandle.Set が呼び出されたかどうかを知る方法
EventWaitHandle
どちらが呼び出されたかを知る方法はありますか。
2 つの異なるシステム全体のイベント名を持つ 2 つのカスタム クラスがあります。
私がそれらを持っていた理由は、どの機能をトリガーするかを区別するためです。
私が現在抱えている問題は、どのイベントがトリガーされたかをどのように区別できるかということです。
したがって、_ew1.Set()
が呼び出された場合は、 を実行する必要がありProcess1
ます。
_ew2.Set() が呼び出された場合は、実行する必要がありProcess2
ます。
更新: 詳細情報を追加しました。
メイン スレッドは Windows サービスです。これは、Web アプリケーションとデスクトップ アプリケーションによって通知されます。したがって、基本的にサービスは、Web アプリケーションまたはデスクトップ アプリケーションからイベントをトリガーしたユーザーを特定する必要があります。Web アプリケーションの場合は SP1 を実行し、Windows アプリケーションの場合は SP2 を実行します。
c# - イベントを単一のプロセスに送信する
現在EventWaitHandle
、Windows フォーム アプリからのウィンドウを持たないネイティブ プロセスのクリーン シャットダウンをトリガーするために を使用しています。これらのプロセスを複数同時に実行している場合、イベントを設定するとすべてが停止します。選択した単一のプロセスにイベントを送信する方法はありますか? Process
それぞれの変数を保持します。
c# - threadPool を使用せずにスレッドの束で多数のプロセスを実行する方法 & 処理に EventWaitHandler を使用する方法
複数のスレッドを実行する必要があります.1つのスレッドが終了したら、別のスレッドを開始します.問題は、すべてのプロセスを同時に開始することです.(この条件はうまく機能していないようです WaitHandle.WaitAny(events);)
1: 20 個のスレッドが実行されている場合、20 番目のスレッドから 1 つのスレッドが解放されると、21 番目のスレッドが開始されます。
2: スレッドプールを使用せずに、EventWaitHandler を使用して実行できます。
c# - WinFormApps と ConsoleApps : BackgroundWorker と EventWaitHandle
.NET 2.0、C#、および VS2010 を使用した WinformApplication と ConsoleApplication の 2 つのプログラムがあります。
2 つのプログラムは、backgroundworker と EventWaitHandle のタスクが同じです。
- BGW の作成
- 仕事する
- RunWorkerCompleted { .. event.Set(); ..}
- 待機 event.waitone()
コンソール アプリは問題なく動作します。ただし、フォーム アプリは機能しません。ここに完全なコードがあります。試してみて、何が問題なのか教えてください。
WinFormApplication コードは次のとおりです。
ConsoleApplication コードは次のとおりです。
c# - .NET システム全体の EventWaitHandle 名に使用できる文字
システム全体の名前付けに制限はありますEventWaitHandle
か? URL を名前として使用したいのですが、奇妙な文字が大量に含まれている可能性があります。サイレントに失敗したり、その他のエラーが発生したりしたくないので、既知の不正な文字があるかどうかを確認してください。これらの名前のために。
私はこれを自分で見つけようとしましたが、私のグーグルフーはうまくいきませんでした。