问题描述
我举个例子吧比如数据库分别有AA、BB、CC、DD、EE表用dictionary循环这个表名然后把这个表名传递到一个函数里执行,但是这个每个表,数据都很大,我希望的是,可以多线程同时执行比如AA这个表,传递到函数里执行代码,不用等执行完了,再去执行BB这个表,就跟普通循环一样,不需要等待,同时执行AA、BB、CC这些表的数据
解决方案
解决方案二:
Parallel.ForEach
解决方案三:
Foreach(....){//1.Task.Factory.StartNew//2.ThreadPool.QueueWork//3.newThread(()=>{...}).Start();}以及其他各种并行的方式都可以,但是要注意每个线程应该都是一条独立的数据库连接。一条数据库连接应该是不能同时执行针对多个表的操作的。
解决方案四:
引用2楼Yokeqi的回复:
Foreach(....){//1.Task.Factory.StartNew//2.ThreadPool.QueueWork//3.newThread(()=>{...}).Start();}以及其他各种并行的方式都可以,但是要注意每个线程应该都是一条独立的数据库连接。一条数据库连接应该是不能同时执行针对多个表的操作的。
可以写一个简单的例子吗?没有搞过多线程
解决方案五:
一个线程在发出指令并等待数据回传期间,是有机会让其他线程工作的但一旦数据开始回传,还会有足够的间隙执行其他线程吗?如果没有的话,您的方案能成立吗?
解决方案六:
Dictionary<string,string>dict=newDictionary<string,string>();for(inti=0;i<5;i++){dict.Add(i.ToString(),"Table"+i);}stringconnString="数据库连接字符串";foreach(KeyValuePair<string,string>itemindict){Task.Factory.StartNew(()=>{using(SqlConnectionconn=newSqlConnection(connString)){Debug.WriteLine("操作"+item.Value);}});}
没用过多线程~~~这...