解决方案 »
- 急急急急高手进
- 新手可选择对话框问题?
- C# 添加IIS站点出错! 请指教一下~~~~~~~~~~~~~~
- 如何將數據綁定到Combo控件啊?
- 请教怎么拖动控件的位置?
- 把整个数据库(spl)导出到别人的机子里面去,就是说要把存储过程也一并导出去,应该如何操作啊
- c#中一个数据类型的问题,很不明白!
- 关于C#里的数据绑定
- 关于Dataset的问题,请帮忙!
- DEV控件里有 可折叠隐藏的控件吗?例如一些查询项的显示隐藏
- 安装Vistual Studio 2012出现问题
- public abstract class BaseEntity<TEntity> : IComparable<TEntity>求解释
那我应该怎么操作?
并不是你所说的这样,backgroundWorker能够完成所有的工作: private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
//...查询数据库的过程
//...很多查询记录,并将记录列出到表中
this.Invoke((MethodInvoker)delegate
{
this.listView.BeginUpdate();
this.listView.Items.Clear();
//循环添加记录:listView.Items.Add()
this.listView.EndUpdate();
});
}
是不是想说backgroundWorker_DoWork只是做后台的事?窗体控件怎么办?
只需要在构造函数中(不确定了)中告诉他支持异步操作
只需要在构造函数中(不确定了)中告诉他支持异步操作
构造函数中家System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
只需要在构造函数中(不确定了)中告诉他支持异步操作
构造函数中家System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
好像有人说过这样操作不太好……
假如嫌写入到界面很慢,也可以在ReportProgress事件一笔一笔的写入到ListView,这样就不会卡住界面了。
另外Rail100 大哥,怎么将Work过程取的数据传送到Progress中,并可以取值,是不是也是查到一个,ListView加载一个,这样ListView会闪跳
并不是你所说的这样,backgroundWorker能够完成所有的工作: private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
//...查询数据库的过程
//...很多查询记录,并将记录列出到表中
this.Invoke((MethodInvoker)delegate
{
this.listView.BeginUpdate();
this.listView.Items.Clear();
//循环添加记录:listView.Items.Add()
this.listView.EndUpdate();
});
}
你这段代码我不清楚的是因为查询过程本来就是一个循环过程,相当于第一个循环结束后,查询记录后数据保存在哪里?是数组里?再次循环添加记录到ListView里?请指教
并不是你所说的这样,backgroundWorker能够完成所有的工作: private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
//...查询数据库的过程
//...很多查询记录,并将记录列出到表中
this.Invoke((MethodInvoker)delegate
{
this.listView.BeginUpdate();
this.listView.Items.Clear();
//循环添加记录:listView.Items.Add()
this.listView.EndUpdate();
});
}
你这段代码我不清楚的是因为查询过程本来就是一个循环过程,相当于第一个循环结束后,查询记录后数据保存在哪里?是数组里?再次循环添加记录到ListView里?请指教
在ListView添加之前都是数据的组织过程,你想怎么组织就怎么组织,你只可以直接new List<xx>的类来存储你的数据,
添加过程你可以直接在Invoke里面进行添加~
如果是这样,建议你先运用数据绑定,这样可以把UI刷新和修改数据分开来
然后,只要把修改数据内容(包括查询数据)的操作放在非UI线程就好了,就是在你的DoWork里面,只要不操作UI,就不要用Invoke。
如果,还是嫌整个添加数据的过程太慢,就加进度条提示用户嘛。