メインフォームと進捗状況が表示される別のフォームを使用してマルチスレッドアプリケーションを開発しています。最初に:MainFormでProgressFormを作成します
Progress p=new Progress();
2番目:クラスModelの新しいインスタンスを作成します(アプリ内のすべてのデータを使用)。
Model m = new Model();
そして、イベントを購読します:
m.OperationStarted += new EventHandler(OnCopyStarted);
private void OnCopyStarted(object sender, EventArgs e)
{
p.Show();
}
3番目:別のモデルのプロパティを変更する別のスレッドでいくつかの操作を実行します
private bool isStarted;
public bool IsStarted
{
get{return isStarted;}
set
{
isStarted = value;
if (isStarted && OperationStarted != null)
{
OperationStarted(this, EventArgs.Empty);
}
}
}
私の質問は次のとおりです。進行状況フォームがメインスレッドに表示されないのはなぜですか?ロックアップなしで実行するにはどうすればよいですか?