ウィンドウがメッセージ(GigEカメラからの画像)を取得しているC#のコードがあります。関数ハンドラーでは、別の関数を呼び出して、メッセージから取得した画像に対して何らかの処理を行います。この処理には、次のメッセージを受信するまでの時間よりも時間がかかる場合があります。処理が完了するまでメッセージを無視するために、いくつかの優れたメカニズムを使用したいと思います。私は簡単に書くことができます:
bool is_processing = false;
void HandleUeyeMessage(int wParam, int lParam)
{
frame = getNewFrame();
if(!is_processing) {
doProcessing(frame);
} else non-blocking ignore
}
void doProcessing(frame f)
{
is_processing = true;
// some processing work...
is_processing = false;
return;
}
しかし、同期メカニズムを使用したいのですが、これは一般的にスレッド化されていないため、何を使用すればよいかわかりません...