娱乐一下,出个考题,如何异步的把自定义对象datatable加载到列表控件中
有些经验的大虾都知道,列表(datagridview)控件可以绑定datatable进行数据展示,一般的datatable包含的都是int,double,string等类型数据,但实际上也可以绑定自定义对象, 只要该对象可以实现tostring(),和 tryparse()方法即可。
C# code
class MyDef
{
string _Content;
public MyDef()
{
thread.Sleep(10);
}
....
public override string ToString()
{
return _Content;
}
public bool TryParse(string s)
{
_Content=s;
return true;
}
}
现在问题出来了, 如果datatable的所有元素都由MyDef组成(即组成的是MyDef[x,y ]数组),而MyDef初始化过程较慢,加载到列表控件时的显示体验就很慢,如果能够后台一边初始化MyDef,一边加载数据到datable, 并更新到列表控件(见我的博客文章http://blog.csdn.net/etudiant6666/article/details/7296416),速度会快很多。
有兴趣的同学可以实现一下,三八节结贴呦。
------解决方案--------------------
哈哈,顶一个先!
看看博客去。。。。
------解决方案--------------------
有想法
------解决方案--------------------
看了博客 回来赞一个
------解决方案--------------------
看博客去。。
------解决方案--------------------
谢谢。
------解决方案--------------------
兄弟,谁把几万条数据加载到一个datagridview不翻页来着?虽然现在机器配置都比较好,但为了节约资源也不至于把海量数据加载到内存吧,而且.NET空间默认只允许创建他的线程进行操作,如果数据量过大,你界面的刷新可能会出问题。
我的建议用滚动实现,预加载前后两页数据,滚动条滚动时显示上一页或下一页的数据或交叉数据