我想从另一个类(可能是线程)获取我的表单句柄。 我想按照我调用的方式进行操作
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
return this.Handle.ToInt32();
});
}
}
}
我收到错误“因为'System.Windows.Forms.MethodInvoker'返回void,返回关键字后面不能跟一个对象表达式”
如果我不使用调用,我会得到一个异常,我没有从当前线程调用该方法。
答案 0 :(得分:1)
您可以调用任何委托,而不仅仅是MethodInvoker。试试这个:
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
return (int)this.Invoke((GetHandleDelegate)delegate
{
return this.Handle.ToInt32();
});
}
return this.Handle.ToInt32();
}
}
private delegate int GetHandleDelegate();