要进行跨线程操作,我使用以下内容:
this.Invoke(new MethodInvoker(() => myMethod());
但是,我不能做,例如,以下内容:
this.Invoke(new MethodInvoker(() => bool myBool = getBool());
return myBool;
我该怎么做?我不能只做bool myBool = getBool();
因为我遇到了跨线程操作错误。
提前致谢。
答案 0 :(得分:4)
试试这个:
delegate T MyDelegate<out T>();
public bool MethodName()
{
bool b = (bool)this.Invoke(new MyDelegate<bool>(() => getBool()));
return b;
}
答案 1 :(得分:1)
不确定你的意思
但你可以做这样的事情
bool myBool = false;
this.Invoke(new MethodInvoker(() => myBool = getBool()));
return myBool;
如果我错了请让我说清楚