【发布时间】:2011-02-21 21:37:46
【问题描述】:
我正在尝试解决一个经典问题 - 我有一个运行一些多线程应用程序 处理器密集型计算,带有 GUI 界面。
每当一个线程完成一项任务时,我想 更新表格的状态
任务ID |状态
我使用 DataGridView 和 BindingList 的方式如下:
BindingList<Task> tasks;
dataGridView.DataSource = tasks
public class Task : INotifyPropertyChanged
{
ID{get;}
Status{get;set;}
}
后台线程可以安全地更新任务的状态吗? 并且更改将在 GUI 中以正确的顺序显示?
第二个问题: 我什么时候需要调用 PropertyChanged? 我试着在有和没有电话的情况下跑步,似乎没有打扰..
第三个问题: 我在 MSDN 上看到 dataGridView 使用 BindingSource 作为 DataGridView.DataSource 和 BindingList 之间的中介 这真的有必要吗?
【问题讨论】:
标签: c# multithreading data-binding