批量查询信息,怎么开多个线程来提高效率?

解决方案 »

  1.   

    这要看你具体的任务的
    多开线程,增加了系统CPU的调度时间,有时,并不一定能够调高效率。
      

  2.   

    哥们,数据条数大于100行,基本对人就没什么意义了。
    你是不是把所有的数据都一次取出来?你觉得你内存够吗?不知道分页吗?想起我同事的一个故事,他给他小弟看程序问题,他小弟搞一个团购网站,用的是GrideView自带的分页功能,开始速度很快,后来数据量到了几十万的时候,网页直接打不开了。好了,我不需要多说了。
      

  3.   

    每个线程执行一部分啊?
    1线程
    select * from (
    select ROW_NUMBER() over(order by Re_Id) as RowIndex,* from tabel
    ) as T where T.RowIndex between 1 and 1002线程
    select * from (
    select ROW_NUMBER() over(order by Re_Id) as RowIndex,* from tabel
    ) as T where T.RowIndex between 101 and 200以此类推,然后在代码中将各个datatable合并。不知道能不能满足你的要求
      

  4.   


    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.   

    打错了!!!!!
    C# code
    Thread[] Threads=new Thread[5];
    public void button1_Click(object sender, EventArgs e)
    {
    for (i=0;i<Threads.Length;i++)
    {
        Threads[i]=new Thread(() => { Task(arg1, arg2,arg3); });
    ……
      

  6.   

    开5-10个线程
    把指定任务分配到这些线程
    任务少的时候可以挂起多余的线程 or 关闭 or 采用新建的线程方式 ps:最好不要新建
    主线程去判断完成程度
    主线程设置超时
    线程调用回调函数
    任务没完成的线程
    可以根据任务判断 如任务ID号
      

  7.   

    10个线程 10个task task要有个标志位 记录当前任务结束了没
    如果全部结束了 才合并