在新开线程中使用对控件使用委托 会报错“控件线程不在当前线程中”,各位大神该如何解决呢? 分不多 见谅哈。
解决方案 »
- 主线程推出了,但是子线程还在监听端口,怎么办?
- (急)这个问题如何解决??
- 求一正则表达式,达人进!
- 要把数据库中的数据写入到文本文件中使用DataReader好?还是DataSet呢?
- 程序需要频繁调用数据库,该如何优化?
- 各路高手进来看看::让浏览器在窗口底部提示;
- ADO.NET方面的3个问题
- 一个对象设计问题
- aspx 中 c# 提示信息怎样写?
- 用C#来开发数据库系统时,可以用创建Word,excel模板来打印数据吗?
- c#窗体程序读取txt文件中的点坐标,把它存到一个数组中,以后要对这些点进行操作。读取这些点以后,要在窗体程序中运行一下能够显示出来。
- 错误 1 找不到类型或命名空间名称“Login”(是否缺少 using 指令或程序集引用?) D:\Backup\我的文档\Visual Studio 2005
Thread td =new Thread(new ThreadStart(xxx));
td.isBackgroud=true;
td.Start();
然后在xxx方法中有调用了一个DataBind(DataTable table)方法,将数据绑定到控件上
private delegate void DelegateDataBind(DataTable table);
private void DataBind(DataTable table)
{
if(InvokeRequired)
{
DelegateDataBind del=new DelegateDataBind (DataBind);
this.Invoke(del,table)
}
else
{ //绑定数据 }
}
之后就提示错误了
效果一样吧
this.Invoke(del,table);
private void 时间_Tick(object sender, EventArgs e)
{
Thread 线程 = new Thread(delegate()
{
if (秒 < 59) 秒++; else { 秒 = 0; 分++; } if (分 == 60) { 分 = 0; 时++; } if (时 == 5) 时 = 0;/*这是个典型例子,这句非UI线程,下一句涉及UI线程转委托就OK*/
this.Invoke(new Action(() =>
显示时间.Text = DateTime.Parse(时.ToString("0:") + 分.ToString("00:") + 秒.ToString("00")).ToLongTimeString()));
}); 线程.Start();
}