c#委托语法问题

本文关键字:问题 语法 | 更新日期: 2023-09-27 18:18:41

目前我的代码是:

private void MyThreadRoutine()
{
    this.Invoke(this.showProgressGifDelegate);
    ModifyConnectString.main();
    this.Invoke(this.HideProgressGifDelegate);
}

public void showProgressGifDelegate() { pictureBox2.Visible = true; }
public void HideProgressGifDelegate() { pictureBox2.Visible = false; }

从我可以告诉这应该工作,但它不编译,因为我得到错误

'参数1:不能从'method group'转换为'System '。委托"和最佳重载方法匹配"System.Windows.Forms.Control.Invoke(系统。委托,参数对象[])'有一些无效参数'

对我的代码的正确语法有什么想法吗?

c#委托语法问题

您应该将您的代码包装在MethodInvoker中,以便将您的delegate转换为Delegate的实例:

this.Invoke(new MethodInvoker(this.showProgressGifDelegate));
this.Invoke(new MethodInvoker(this.HideProgressGifDelegate));