有时线程更新UI线程,需要用到BeginInvoke,我经常这样BeginInvoke(new MethodInvoker(delegate() {}));
但有时有点怀疑线程是否安全,下面是代码:
row2[14] = chong;
DataGridViewRow DgvRow = new DataGridViewRow();
DgvRow.CreateCells(this.dataGridViewX3, row2);
DgvRow.Tag = d; ;
this.dataGridViewX3.BeginInvoke(new MethodInvoker(delegate()
{
dataGridViewX3.Rows.Insert(0, DgvRow);
this.ribbonTabItem5.Text = "总计[" + this.dataGridViewX3.RowCount.ToString() + "]";
}));
string time = DateTime.Now.ToString("MM-dd HH:mm:ss");
this.textBox2.BeginInvoke(new MethodInvoker(delegate() { this.textBox2.Text = time + " " + d.zhuangtai + "\r\n" + this.textBox2.Text; }));虽然绝大部分正常,但有时 this.textBox2.BeginInvoke(new MethodInvoker(delegate() { this.textBox2.Text = time + " " + d.zhuangtai + "\r\n" + this.textBox2.Text; }));这一句执行了,但前面datagridviewx3却没有填加新行?!是不是BeginInvoke不够安全还是其它原因?dataGridViewX3.BeginInvoke中同时更新 this.ribbonTabItem5.Text 是否允许?!因为也是UI线程,所以我这么写
但有时有点怀疑线程是否安全,下面是代码:
row2[14] = chong;
DataGridViewRow DgvRow = new DataGridViewRow();
DgvRow.CreateCells(this.dataGridViewX3, row2);
DgvRow.Tag = d; ;
this.dataGridViewX3.BeginInvoke(new MethodInvoker(delegate()
{
dataGridViewX3.Rows.Insert(0, DgvRow);
this.ribbonTabItem5.Text = "总计[" + this.dataGridViewX3.RowCount.ToString() + "]";
}));
string time = DateTime.Now.ToString("MM-dd HH:mm:ss");
this.textBox2.BeginInvoke(new MethodInvoker(delegate() { this.textBox2.Text = time + " " + d.zhuangtai + "\r\n" + this.textBox2.Text; }));虽然绝大部分正常,但有时 this.textBox2.BeginInvoke(new MethodInvoker(delegate() { this.textBox2.Text = time + " " + d.zhuangtai + "\r\n" + this.textBox2.Text; }));这一句执行了,但前面datagridviewx3却没有填加新行?!是不是BeginInvoke不够安全还是其它原因?dataGridViewX3.BeginInvoke中同时更新 this.ribbonTabItem5.Text 是否允许?!因为也是UI线程,所以我这么写
解决方案 »
- 求赐教
- 程序里怎么创建修改存储过程
- Winform父窗体与子窗体的问题
- c#一键打开某个窗口
- 怎样保存C#窗体上的注册信息保存到SQL数据库?
- 请问一下怎么把picturebox的坐标原点改为左下角,X轴向右为正,Y轴向上为正?
- 在DataGrid里绑定CheckBox后,点CheckBox不起作用是怎么回事呀?
- Xatop多页面网页刷新器1.0,使用C# Winform开发
- 框架中的链接地址如何赋值?
- 请问VS.net Beta2版下的C#编译器文件是那个?(找不到csc.exe)为什么在第一版下的程序在BETA2下运行出错?
- 如何把AjaxToolkit加入到页面当中。。。
- 【C#】使用类作为其他类的属性,调用的时候有些问题让我不明白
this.dataGridViewX3.Invoke(new MethodInvoker(delegate()