线程在WinForms桌面应用程序

本文关键字:应用程序 桌面 WinForms 线程 | 更新日期: 2023-09-27 17:50:56

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

现在当我与第三方软件交互时,其值更新为"成功"或"失败"。但是,当所有事务完成时,这些更改会反映在数据网格上。

我想显示每个事务的所有更新结果。使用线程。

请给我一个代码。

Thanks in advance

线程在WinForms桌面应用程序

不能从其他线程更新数据集。如果这样做,应用程序将导致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;
            }));
        }