2016-05-24 14 views
-1

私のプログラムは、さまざまなセンサーからデータを収集し、センサーの読み取りに何か問題がある場合は、ユーザーに警告するための電子メールを送信する必要があります。イベントトリガー - ベストプラクティス

このため、変数SEND_MSGを割り当てて、電子メール送信イベントをトリガーしました。読んで何かがあるときはいつも、私はSEND_MSGを999に設定し、この変数をループしてチェックする別のスレッドは送信電子メールプロセスをトリガーします。 SEND_MSGの読み取り/書き込み操作は、ロックステートメント内で行われます。

これを行うより良い方法はありますか?

ありがとうございます。

答えて

0

ステータスを通信するためにスレッドからステータスを保持する変数をポーリングしています。それは非常に効率的な設計ではありません。

この状況をはるかに上手く処理する多くのスレッド間通信メカニズムがあります。メカニズムの偉大な概要については

は、あなたは、単に電子メールを送信する必要性を通信したい場合は、たとえばAutoResetEventのために使用することができますhttp://www.albahari.com/threading/

を参照してください。

センサー番号、故障の種類などの追加情報の通信を容易にするもう1つのオプションは、BlockingCollectionの使用を検討することができます。そのリンクの最下部でそれを使用する方法の良い例があります。

関連する問題