問題タブ [autoresetevent]

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 に答える
968 参照

c# - C# AutoResetEvent WaitOne がディスパッチャによって停止されました

上記のコードは、2 つの grdMain.Dispatcher.Invoke(...); をコメントアウトした場合に完全に機能します。*.Set(); をコメントアウトすると、完全に機能します。および *.WaitOne(); でもなんで?両方必要です^^。理解できません...

0 投票する
3 に答える
420 参照

c# - System.Threading.Timer をより効率的に使用できますか

コードをより効率的にするためのアドバイスを探しています。私がやりたいことは、System.Threading.Timer1 時間ごとに何らかのジョブを実行することです。ジョブはそれほど重くはなりませんが、リソースをあまり消費しないコードが必要です。このコードを Windows サービスで実行する予定です。

これは私がこれまでに持っているものです。

皆さんはどう思いますか?コードをより効率的にすることはできますか?

すべてのアドバイスは大歓迎です!

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

c# - AutoResetEvent + Background Worker の連携

これら 2 つが連携して機能しているとは確信していないため、これら 2 つが連携して機能することについて質問があります。

バックグラウンドワーカーを使用するコードがいくつかあり、 DoWork() 内でいくつかのロジックを実行します。このロジックは、単純に TcpClient オブジェクトを使用して、データを外部デバイスに送信します。

私の質問は、AutoResetEvent.WaitOne() を呼び出す DoWork() 内にあります。AutoResetEvent.Set() が呼び出されるまで、これは現在のスレッドを停止しますか? たとえば、AutoResetEvent.Set() がまったく呼び出されない場合、バックグラウンド ワーカーは単純に停止し、操作を実行しませんか?

これが本質的に悪い設計であるかどうかはわかりませんが、残念ながらそれをサポートしています:(

いくつかの擬似コードを編集します

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

c# - C# で autoresetevent を使用してファイルを読み書きする

スレッド同期の簡単なプログラムを作成しました。しかし、このプログラムを実行すると、「別のプロセスで使用されているため、プロセスはファイル 'D:\Vivek.txt' にアクセスできません。」というエラーが表示されます。このエラーが発生する理由。

のコードを置き換えると

プログラムは初めて同じエラーを表示します。その後、エラーが発生することはありません。バグの領域、理由、および最善の解決策を教えてください。

0 投票する
4 に答える
3931 参照

c# - AutoResetEvent Set 直後にリセット

次のパターンを検討してください。

このパターンの目的は、外部コンシューマーが特定のイベント (メッセージの到着など) を待機できるようにすることです。WaitForNextEventクラス内からは呼び出されません。

よく知られている例として、 を考えてみましょうSystem.Diagnostics.Process。イベントを公開しますが、プロセスが終了するまで呼び出し元が同期的に待機できるようにExitedするメソッドも公開します。WaitForExitこれが私がここで達成しようとしていることです。

私が必要な理由は、既に呼び出された後signal.Reset()にスレッドが呼び出された場合 (つまり、スレッドが待機していないときに呼び出された場合)、イベントが既に通知されているため、すぐに戻るためです。WaitForNextEvent signal.Set().Set

質問

  • スレッド呼び出しが呼び出される前WaitForNextEvent()に通知されることが保証されていますか? そうでない場合、メソッドを実装するための他のソリューションは何ですか? signal.Reset()WaitFor