C#委托语法问题

时间:2014-08-19 07:06:35

标签: c#

我到目前为止的代码是:

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:无法从'方法组'转换为'System.Delegate''   和'最好的重载方法匹配   'System.Windows.Forms.Control.Invoke(System.Delegate,params   object [])'有一些无效的参数'

关于我的代码的正确语法的任何想法?

1 个答案:

答案 0 :(得分:3)

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

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