【发布时间】:2014-04-05 15:21:22
【问题描述】:
我想将整个代码传递给 BackgroundWorker DoWork 事件。我是这么看的
var c = (MethodInvoker)delegate
{
object all = z.bg_getAllPlugins("size=10");
propertyGrid1.Invoke((MethodInvoker)delegate
{
propertyGrid1.SelectedObject = all;
});
};
call.RunWorkerAsync(c);
但是当我尝试调用它时
private void call_DoWork(object sender, DoWorkEventArgs e)
{
Invoke(e.Argument);
}
,它在主线程上调用它,从而使 BackgroundWorker 无法完成它的工作。 BackgroundWorker 是否可以在 DoWork 线程中调用 Delegate?
现在只是传递参数,作为委托 MethodInvoker。
【问题讨论】:
-
你打电话给
Invoke- 为什么?这就是把它放回主线程的原因...... -
问题是如何不让这种情况发生,我不知道 BackgroundWorker 执行委托中的操作的语法是什么。
标签: c# winforms backgroundworker