我找不到任何可以解决我情况的事情,我不知道如何处理它。设置:
我想要做的是经常从ClassB调用Form1.ClassA.updateProgressBar(index)。
MehtodInvoker似乎是正确的方式,但我不知道如何去做。我正在想一些类似......的事情。
form.Invoke((MehtodInvoker) delegate {
Form1.prog.incProgressBar(name);
})
其中prog是ClassA ......
谢谢, 礼
答案 0 :(得分:1)
ClassB在非UI线程中运行,因此您需要确保在Form1的UI线程中更新进度条。
in Form1:
public void UpdateProgressBar(int index)
{
if (InvokeRequired)
{
Invoke(new Action<int>(i => UpdateProgressBar(i)), index);
}
else
{
prog.updateProgressBar(index);
}
}
in ClassB:
form1.UpdateProgressBar(index);
答案 1 :(得分:0)
属性和类成员的默认可见性是私有的,即prog是私有的,不可访问。
答案 2 :(得分:0)
试试这个:
form.Invoke((MehtodInvoker) delegate {
form.prog.incProgressBar(name);
})