线程在WinForms桌面应用程序
本文关键字:应用程序 桌面 WinForms 线程 | 更新日期: 2023-09-27 17:50:56
我有一个绑定到数据网格的数据集。在dataset中,有一个列保存数据的状态。在页面加载时,它有'Pending'值。
现在当我与第三方软件交互时,其值更新为"成功"或"失败"。但是,当所有事务完成时,这些更改会反映在数据网格上。
我想显示每个事务的所有更新结果。使用线程。
请给我一个代码。
Thanks in advance
不能从其他线程更新数据集。如果这样做,应用程序将导致Cross Thread操作异常。我认为最好的方法是在后台线程中计算所需的状态,但在主线程中更新DataSet。这应该不会影响应用程序的性能。下面是一些示例代码:
...
ThreadStart ts = new ThreadStart(UpdateStatuses);
Thread thread = new Thread(ts);
thread.Start();
...
void UpdateStatuses() {
// calculate statuses ;
BeginInvoke(new MethodInvoker(delegate {
for(int i = 0; i < table.Rows.Count; i++)
table.Rows[i]["Status"] = someValue;
}));
}