本人新手,请多指教!
    经常需要连接多个数据库查询业务数据,各个数据库中的表结构都是一致的,经常需要用同一条查询在10多个数据库中查询,目前的做法是通个循环访问数据库查询,然后将结果汇总到datatable中。
想考虑采用多线程的方式来实现同时多个数据库查询,以提高效率。
本人不熟悉多线程,请各位高人指点,最好能有个例子,谢谢!数据库多线程

解决方案 »

  1.   

    可以开10多个线程运行,单个开例:
    Thread tsAccept = new Thread(myAccept);
    tsAccept.IsBackground = true;
    tsAccept.Start();private void myAccept()
    {}
    注意的是同步和委托工作
      

  2.   

    补充一下,数据库用的是sybase,数据库的连接参数是存在xml文件中,在连接时需要将地址、端口、数据库名、用户名和密码等参数传入到程序中,在线程中如何将多个参数会传入?谢谢!
      

  3.   

    将线程执行的方法和参数都封装到一个类里面。通过实例化该类,方法就可以调用属性来实现间接的类型安全地传递参数。例:
    //ThreadWithState 类里包含了将要执行的任务以及执行任务的方法
    public class ThreadWithState {
        //要用到的属性,也就是我们要传递的参数
        private string boilerplate;
        private int value;    //包含参数的构造函数
        public ThreadWithState(string text, int number) 
        {
            boilerplate = text;
            value = number;
        }    //要丢给线程执行的方法,本处无返回类型就是为了能让ThreadStart来调用
        public void ThreadProc() 
        {
            //这里就是要执行的任务,本处只显示一下传入的参数
             Console.WriteLine(boilerplate, value); 
        }
    }//用来调用上面方法的类,是本例执行的入口
    public class Example {
        public static void Main() 
        {
            //实例化ThreadWithState类,为线程提供参数
            ThreadWithState tws = new ThreadWithState(
                "This report displays the number {0}.", 42);        // 创建执行任务的线程,并执行
            Thread t = new Thread(new ThreadStart(tws.ThreadProc));
            t.Start();
            Console.WriteLine("Main thread does some work, then waits.");
            t.Join();
            Console.WriteLine(
                "Independent task has completed; main thread ends.");  
        }
    }
      

  4.   

    具体问题具体分析,如果你的SQL数据库在不同的机器上,可以采用楼上的办法,如果是本机的数据库,那就一个字 等