我有一个绑定到数据网格的数据集。 在数据集中,有一个保存数据状态的库仑。 在页面加载时,它具有“待定”值。
现在,当我与第三方软件交互时,其值会更新“成功”或“失败”。 但是这些变化反映了所有交易完成后的数据网格。
我想按照交易显示所有更新的结果。 使用Thread。
请给我一个代码。
提前致谢
答案 0 :(得分:2)
您无法从其他线程更新DataSet。如果这样做,应用程序将导致跨线程操作异常。我看到的最好的方法是在后台线程中计算所需的状态,但更新主线程中的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;
}));
}