我现在是要往SQLserver2008R2数据库里同一个表插入一批测试数据,速度比较慢,想用多线程实现,请问该如何做?
Task.Factory.StartNew(() => StationInfoImporter(station, database)),这条语句开启一个线程执行插入操作为什么不能实现?
用SqlBulkCopy吧,多线程会消耗更多资源,而且你还没使用Sql的Async模式。
能说的稍微详细一点吗?
@super 86:SqlBulkCopy: http://www.cnblogs.com/Giozhou/archive/2010/05/21/sqlbulkcopy.html
Thread Th = new Thread(new ThreadStart(ThText));
Th .IsBackground = true;--是否设为后台进程
Th .Start();--开始进程
--ThText是要执行的方法名称
public void ThText()
{
while (true)
{
.....逻辑代码
}
}
用Task 的数组可以实现,其实方法多的狠,你google一下就知道了
你的需求我觉得使用多线程不一定会更快,你检查一下要插入的表有使用索引没,如果是有先取消掉插入速度会快很多
数据库操作,多线程不一定就会快,我试过。
你可以让任务在后台运行吧。