在新开线程中使用对控件使用委托 会报错“控件线程不在当前线程中”,各位大神该如何解决呢? 分不多 见谅哈。
解决方案 »
- nunit和VS中自带的单元测试是怎么回事?
- 请教一下c#如何读取用空格分开的字符串的文件
- 非常非常想学.NET,请前辈指路。
- 要绑定数据控件,怎么取出xmlnodelist的前5条记录?(附代码)
- 100分求.net2005网站后台系统
- 如何在后台提取出前台html控件的value?
- web service 的问题
- DataGrid与DataSet绑定的问题!急!!!
- 急急!!!求救高手!!vs2005c#如何打印窗体上的所有内容
- 怎样做一个操作其它Windows程序的程序
- 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();
}