生成が外部イベントに基づいているマルチスレッドのプロデューサー/コンシューマー プログラムを作成する方法を理解したいと考えています。
2 つのスレッド ループを持つ同期キューを作成しました。1 つはエンキューし、もう 1 つはデキューしてファイルに書き込みます。
Class SyncQueue
{
...
producerThread = new Thread(new ThreadStart(StartProducer));
consumerThread = new Thread(new ThreadStart(StartConsumer));
...
public void Start()
{
producerThread.Start();
consumerThread.Start();
}
public void StartProducer()
{
while (!stop)
{
//wait for an external event to happen
//Data data = eventHandler() : How to wait for an event and get?
Enqueue(data);
}
}
}
反対側には、外部イベントを独立して処理する別のクラスのメソッドがあります。
public void OnExternalEvent()
{
//event occured
//how to notify and send data to the producer thread?
}
私の質問は、生産者/消費者のパターンについてではなく、その中でイベントを統合することについてです。
投稿したコードは、質問を明確にするためのものです。コメントに2つの具体的な質問を追加しました。
どなたかやり方教えていただけるとありがたいです。私は C# の初心者であり、イベント処理に関する強いバックグラウンドを持っていません。