我用主要形式和另一种显示进度的形式开发多线程应用程序。起初:我在 MainForm 中创建 ProgressForm
Progress p=new Progress();
第二:我创建类模型的新实例(我的应用程序中的所有数据)。
Model m = new Model();
并订阅事件:
m.OperationStarted += new EventHandler(OnCopyStarted);
private void OnCopyStarted(object sender, EventArgs e)
{
p.Show();
}
第三:我在另一个线程中运行一些操作,我在另一个模型中更改属性
private bool isStarted;
public bool IsStarted
{
get{return isStarted;}
set
{
isStarted = value;
if (isStarted && OperationStarted != null)
{
OperationStarted(this, EventArgs.Empty);
}
}
}
我的问题是:为什么进度表不显示在主线程中?如何在没有锁定的情况下运行它?