是否是在线程类中用委托?参数该如何传递呢?
Form1 form1 = new Form1();
System.Windows.Forms.Control.Invoke(new delegate_fail_additem(form1.add_fail_item),new object[]{columns});
这个是我在线程类中用的委托,不过出错了
非静态的字段、方法或属性“System.Windows.Forms.Control.Invoke(System.Delegate, object[])”要求对象引用
请大家帮忙。我也不知道我这样做是否正确。
Form1 form1 = new Form1();
System.Windows.Forms.Control.Invoke(new delegate_fail_additem(form1.add_fail_item),new object[]{columns});
这个是我在线程类中用的委托,不过出错了
非静态的字段、方法或属性“System.Windows.Forms.Control.Invoke(System.Delegate, object[])”要求对象引用
请大家帮忙。我也不知道我这样做是否正确。
解决方案 »
- WinCE C# datagrid定位的问题
- Winform 单例模式 如果有相同的程序在运行 notifyIcon气泡提示 “程序正在运行,我在这儿”
- 有人下全过 VS 2008 在线提供的 .net 源代码没有?
- 关于利用反射设置导出的excel文件的列宽度的问题
- 动态控制datagridview外观与显示列
- 我要用日志记录下来用户对数据库的增删改操作,该如何实现?
- 【求助】怎么把一个FORM里面的内容,都保存到一个BMP图片文件中去?
- 如何把一个object对象转换成ARRAYLIST 对象???
- DCube Control 能不能用于.net?
- 如何知道本机的端口是与远程什么IP地址连接
- Excel 设了密码后 怎么也打不开了~~~~~~
- C#使用小问题
//定义startwork工作完成后的委托
protected delegate void Complete( bool IsError );
void StartWork()
{
Complete complete = new Complete( CallComplete );
Invoke( complete,new object[]{ IsError } );
}
在回调函数CallComplete 中可以检查是否工作在主线程上了
private void CallComplete( bool IsError )
{
if( this.InvokeRequired == false )
{
//主线程
//在这里更新控件
}
else
{
//其它线程(回调自己)
Complete complete = new Complete( CallComplete );
Invoke( complete,new object[]{ IsError } );
}
}
http://blog.csdn.net/knight94/archive/2006/03/16/626584.aspx
这个是类啊。 兄弟,这个的Invoke不能使用。编译环境说得很明白
你需要一个实例化得control来调用Invoke方法。
上面black兄弟得方法很好, 你可以借鉴使用, 不过你得用实例化了的control
比如
this.txtBox1.Invoke()等等才可以。