为 MethodInvoker 委托声明 EndInvoke
Declaring EndInvoke for MethodInvoker delegate
如何为这样的 BeginInvoke
声明 EndInvoke
:
this.BeginInvoke((MethodInvoker) delegate() {
frmPressEnableButton.ShowDialog();
});
?
更新:这是我在 运行 期间不断收到的两条错误消息
1. 在创建 window 句柄之前,可以在控件上调用 Invoke
或 BeginInvoke
。
2. 已经可见的窗体,不能显示为模态对话框。在调用 ShowDialog 之前将表单的 Visible 属性 设置为“false”。
需要注意的是,这个问题是在我包含另一个对话框后引发的,为此
1.我通过引用传递主窗体本身
2. 我没有为新对话框调用Invoke
或BeginInvoke
。
这必须让 运行ning 在后台。
不确定您尝试做什么,但看起来您需要一个 IAsyncResult
接口来保存异步操作的结果并稍后在您的 EndInvoke
方法中使用它:
IAsyncResult result = this.BeginInvoke((MethodInvoker) delegate() {
frmPressEnableButton.ShowDialog();
});
this.EndInvoke(result); // waits until the async call completes
如何为这样的 BeginInvoke
声明 EndInvoke
:
this.BeginInvoke((MethodInvoker) delegate() {
frmPressEnableButton.ShowDialog();
});
?
更新:这是我在 运行 期间不断收到的两条错误消息
1. 在创建 window 句柄之前,可以在控件上调用 Invoke
或 BeginInvoke
。
2. 已经可见的窗体,不能显示为模态对话框。在调用 ShowDialog 之前将表单的 Visible 属性 设置为“false”。
需要注意的是,这个问题是在我包含另一个对话框后引发的,为此
1.我通过引用传递主窗体本身
2. 我没有为新对话框调用Invoke
或BeginInvoke
。
这必须让 运行ning 在后台。
不确定您尝试做什么,但看起来您需要一个 IAsyncResult
接口来保存异步操作的结果并稍后在您的 EndInvoke
方法中使用它:
IAsyncResult result = this.BeginInvoke((MethodInvoker) delegate() {
frmPressEnableButton.ShowDialog();
});
this.EndInvoke(result); // waits until the async call completes