需要设置带有交叉线程的bool

时间:2013-07-28 10:24:07

标签: c# multithreading winforms boolean variable-assignment

private bool getWindowBool() {
    bool myBool;
    this.Invoke(new MethodInvoker(() => myBool = IsForegroundWindow));
    return myBool;
}

为什么这不起作用?我该怎样做我想要达到的目标?

1 个答案:

答案 0 :(得分:4)

明确的任务。编译器不知道Invoke在这里意味着什么,并且它不会试图理解委托在方法结束之前被调用 - 因此它无法证明(在有限的处理过程中)它在返回之前被分配。改为:

bool myBool = false;