我收到一个错误"Cross-thread operation not valid: Control 'AllOtherStatus' accessed from a thread other than the thread it was created on."
我有这个代码:_output
设置为AllOtherStatus
,查看调试器,_output.InvokeRequired
是false
这段代码运行良好,直到我更改了一个不使用这段代码的不相关类。代码到达 else 语句然后抛出异常。
private void Thread(Object p)
{
lock (this)
{
if (_output.InvokeRequired)
{
if(s!= null)
_output.Invoke(new MethodInvoker(delegate { _output.AppendText(s); }));
}
else
_output.AppendText(s);
s = null;
}
}
所以我的问题是为什么_output.InvokeRequired
当它显然应该返回真时突然返回假?