メッセージが徐々に表示され、数秒後に再びフェードするUserControlがあります。このコントロールはbackgroundWorkerを使用します。それは大丈夫です。ただし、メッセージを次のように表示するメソッドにオーバーロードを追加する必要があります。
ShowMessage(string message, bool waitToHide) { .. }
ここで、呼び出しスレッド(UIスレッド)に上記のメソッドを待機させるための最良の方法を知る必要があります。
内部backgroundWorkerが完了したことを呼び出しスコープに通知するイベントを発生させようとしましたが、このメソッドはメインアプリケーションで頻繁に使用されているため、多くの統合スコープをいくつかの分散スコープに分割する必要があります。
{
// before code snippet..
messageDisplayer1.ShowMessage("test", true);
// after code snippet..
}
になります:
{
// before..
messageDisplayer1.ShowMessage("test", true);
}
void messageDisplayer1_Done()
{
// after..
}