private AsyncOperation asyncOpr; 在窗体Load事件中初始化: this.asyncOpr = AsyncOperationManager.CreateOperation(null); 对加载的数据使用Task异步类: Task.Factory.StartNew(() => this.读取数据()).ContinueWith(c => { if (c.IsCompleted) { this.asyncOpr.Post(obj => { //在些将数据绑定到控件 }, null); } if (c.Exception != null) { //异常处理 MessageBox.Show(c.Exception.Message); } }, TaskScheduler.FromCurrentSynchronizationContext()); 希望对你有所帮助。
private AsyncOperation asyncOpr;
this.asyncOpr = AsyncOperationManager.CreateOperation(null);
Task.Factory.StartNew(() => this.读取数据()).ContinueWith(c => { if (c.IsCompleted) { this.asyncOpr.Post(obj => { //在些将数据绑定到控件 }, null); } if (c.Exception != null) { //异常处理 MessageBox.Show(c.Exception.Message); } }, TaskScheduler.FromCurrentSynchronizationContext());
引用 55 楼 singlesai 的回复:3w条记录,好多人不理解,我理解,楼主是为了做检索,combo是可以输入时自动检索相似项的 理解万岁。
那就采用大数据量分页呀。 我的框架中有实现,千万条数据,一刷就出来了
引用 52 楼 yuwenge 的回复:3w条数据的combobox 楼主,要是我是用户,你在旁边,我直接抽你一嘴巴。 这玩意是给人用的么? 一脚T飞,30000条的combox糊弄鬼啊。你怎么不直接让我弄DB好了。
3w条数据的combobox 楼主,要是我是用户,你在旁边,我直接抽你一嘴巴。 这玩意是给人用的么?
大约3千多条 简单啊。我还以为3千万。
定义一个委托。在你的查询线程里查到数据后,调用invoke,在你定义的委托设置数据。这个应该不卡。 private delegate void SearchData(String data); Thread t = new Thread(new ThreadStart(test)); t.Start(); ……
110,566
社区成员
642,567
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧