问题描述
现有一个数据表有10000多条数据,我想读入C#虚拟表DataTable中,如何利用多线程的方法读入到DataTable中,谢谢!能否给个例子,很急,在线等。
解决方案
解决方案二:
........Threadt=newThread(newThreadStart(readData));t.Start();privatevoidreadData(){//TODO;读取数据防到datatable里面去}
解决方案三:
这个怎么写,就创建一次线程吗,我试过privatevoidresult(){intrs=0;for(inti=0;i<1000000000;i++){rs=rs+i;}MessageBox.Show(rs.ToString());}privatevoidbutton1_Click(objectsender,EventArgse){ThreadNewThread=newThread(newThreadStart(result));NewThread.IsBackground=true;if(!NewThread.IsAlive)NewThread.Start();}我这么些过,也没快呀,我想能否分多个线程,提高读取速度。
解决方案四:
你觉得百度怎么做的?
解决方案五:
引用1楼ericzhangbo1982111的回复:
........Threadt=newThread(newThreadStart(readData));t.Start();privatevoidreadData(){//TODO;读取数据防到datatable里面去}
up
解决方案六:
privatevoidresult(){intrs=0;for(inti=0;i<1000000000;i++){rs=rs+i;}MessageBox.Show(rs.ToString());}privatevoidbutton1_Click(objectsender,EventArgse){ThreadNewThread=newThread(newThreadStart(result));NewThread.IsBackground=true;if(!NewThread.IsAlive)NewThread.Start();}我这么写有错误码,怎么没见快呢
解决方案七:
引用1楼ericzhangbo1982111的回复:
........Threadt=newThread(newThreadStart(readData));t.Start();privatevoidreadData(){//TODO;读取数据防到datatable里面去}
up楼上核心部分要加锁lock
解决方案八:
没人会呀,不会吧,怎么我的问题就没有给解决呢,自己顶
解决方案九:
up
解决方案十:
引用2楼dpec1982的回复:
这个怎么写,就创建一次线程吗,我试过我这么些过,也没快呀,我想能否分多个线程,提高读取速度。
容易,开多几条线程,使用类似于数据分页的存储过程,线程1读1-1000条记录,线程2读1001-2000条记录,线程3读2001-3000条记录....程式优化与工作量的取舍,自行衡量了
解决方案十一:
朋友们,我的这个帖子不能沉呀,只能自己顶了
解决方案十二:
顶一下...
解决方案十三:
线程三个以上就不快了
解决方案十四:
快不快看你CPU的个数,
解决方案十五:
引用楼主dpec1982的帖子:
现有一个数据表有10000多条数据,我想读入C#虚拟表DataTable中,如何利用多线程的方法读入到DataTable中,谢谢!能否给个例子,很急,在线等。
这样:1开辟n个线程2每个线程读取m条记录,需要有个字段表示行号,则读范围是->行号between(m1,m2)3每个线程读取后保存到自己的datatable4把所有这些datatable合并成(datatable有merge方法)一个DataTable(你要的那个)也许会快些,试试!