-1

我有一个绑定到数据网格的数据集。在数据集中,有一个保存数据状态的列。在页面加载时,它具有“待定”值。

现在,当我与 3rd 方软件交互时,它的值会更新“成功”或“失败”。但是当所有事务都完成时,这些更改会反映在数据网格上。

我想根据事务显示所有更新的结果..使用线程。

请给我一个代码。

提前致谢

4

1 回答 1

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;
            }));
        }
于 2013-01-07T13:51:48.760 回答