110,536
社区成员
发帖
与我相关
我的任务
分享
public class PagedData : IList, ITypedList, ...., IBindingList
{
//......
public void GetData()
{
CreateEmptyTable();
if (BeginQueryData != null) BeginQueryData();
Thread t = new Thread(new ThreadStart(delegate()
{
Data = GetPartData(Pager);
for (int i = Pager.Offset; i < endRow; i++)
{
//问题出现在这里,由于该类作为数据源,无法知道是谁调用了它,
//因此,主线程的控件在调用ListChanged事件时,会抛出”跨线程操作“的异常
ListChanged(this, new ListChangedEventArgs(ListChangedType.ItemChanged, i));
}
if (EndQueryData != null) EndQueryData();
}));
t.Start();
}
//......