(急)C#开多个线程完成同一任务解决方案
(急)C#开多个线程完成同一任务
批量查询信息,怎么开多个线程来提高效率?
------解决方案--------------------
第一、把你的数据在逻辑上拆分成N份。
第二、利用线程同时读取他们。
第三、都读取后,合并之。。。。。。。
------解决方案--------------------
每个线程执行一部分啊?
1线程
2线程
以此类推,然后在代码中将各个datatable合并。不知道能不能满足你的要求
------解决方案--------------------
------解决方案--------------------
开5-10个线程
把指定任务分配到这些线程
任务少的时候可以挂起多余的线程 or 关闭 or 采用新建的线程方式 ps:最好不要新建
主线程去判断完成程度
主线程设置超时
线程调用回调函数
任务没完成的线程
可以根据任务判断 如任务ID号
批量查询信息,怎么开多个线程来提高效率?
------解决方案--------------------
第一、把你的数据在逻辑上拆分成N份。
第二、利用线程同时读取他们。
第三、都读取后,合并之。。。。。。。
------解决方案--------------------
每个线程执行一部分啊?
1线程
select * from (
select ROW_NUMBER() over(order by Re_Id) as RowIndex,* from tabel
) as T where T.RowIndex between 1 and 100
2线程
select * from (
select ROW_NUMBER() over(order by Re_Id) as RowIndex,* from tabel
) as T where T.RowIndex between 101 and 200
以此类推,然后在代码中将各个datatable合并。不知道能不能满足你的要求
------解决方案--------------------
Thread[] Threads=new Thread[5];
public void button1_Click(object sender, EventArgs e)
{
for (i=0;i<Threads.Length;i++)
{
Thread[i]=new Thread(() => { Task(arg1, arg2,arg3); });
Thread[i].Name="Thread"+i.ToString();
Thread[i].Start();
}
}
public void Task(string A,string B,string C)//一定要是Void返回值
{
MessageBox.Show(A+B+C,"我是"+Thread.CurrentThread.Name);
}
------解决方案--------------------
开5-10个线程
把指定任务分配到这些线程
任务少的时候可以挂起多余的线程 or 关闭 or 采用新建的线程方式 ps:最好不要新建
主线程去判断完成程度
主线程设置超时
线程调用回调函数
任务没完成的线程
可以根据任务判断 如任务ID号