我到目前为止的代码是:
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 [])'有一些无效的参数'
关于我的代码的正确语法的任何想法?
答案 0 :(得分:3)
您应该将代码包装在MethodInvoker
中,以便将delegate
转换为Delegate
的实例:
this.Invoke(new MethodInvoker(this.showProgressGifDelegate));
this.Invoke(new MethodInvoker(this.HideProgressGifDelegate));