【发布时间】:2013-07-28 09:48:25
【问题描述】:
要做跨线程操作,我使用如下:this.Invoke(new MethodInvoker(() => myMethod());
但是,例如,我不能执行以下操作:
this.Invoke(new MethodInvoker(() => bool myBool = getBool());
return myBool;
我该怎么做?我不能只做 bool myBool = getBool();
因为我得到一个跨线程操作错误。
提前致谢。
【问题讨论】:
-
考虑使用基于任务的异步,而不是管理自己的线程。使用基于任务的异步,您只需
await任务的价值;然后Task<bool>将返回布尔值并在适合上下文的线程上恢复执行。
标签: c# multithreading winforms invoke