如何从不同的线程获得bool?

时间:2013-07-28 09:48:26

标签: c# multithreading winforms invoke

要进行跨线程操作,我使用以下内容:
this.Invoke(new MethodInvoker(() => myMethod());

但是,我不能做,例如,以下内容:

this.Invoke(new MethodInvoker(() => bool myBool = getBool()); 
return myBool;

我该怎么做?我不能只做bool myBool = getBool();
因为我遇到了跨线程操作错误。

提前致谢。

2 个答案:

答案 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;

如果我错了请让我说清楚