为MethodInvoker委托声明EndInvoke

时间:2015-07-31 16:57:21

标签: c# delegates begininvoke

如何为这样的do { try context.save() } catch {} 声明EndInvoke

BeginInvoke

更新:这是我在运行时不断获得的两个错误消息 1.可以在控件上调用this.BeginInvoke((MethodInvoker) delegate() { frmPressEnableButton.ShowDialog(); }); Invoke,直到创建窗口句柄。 2.已经可见的表单,不能显示为模式对话框。在调用ShowDialog之前,将表单的Visible属性设置为“false”。

应该注意,此问题是在我包含另一个对话框后启动的 我通过参考传递了主要表格 2.我没有为新对话框调用BeginInvokeInvoke。 这必须在后台继续运行。

1 个答案:

答案 0 :(得分:0)

不确定您尝试做什么,但看起来您需要一个IAsyncResult接口来保留异步操作的结果,并在以后的EndInvoke方法中使用它:

IAsyncResult result = this.BeginInvoke((MethodInvoker) delegate() {
  frmPressEnableButton.ShowDialog();
}); 

this.EndInvoke(result);  // waits until the async call completes