新建多个线程进行读取数据库,怎么实现多线程并发读取数据库信息啊?c#

解决方案 »

  1.   

     private void StartRead(int num)
            {
                for (int i = 0; i < num; i++)
                {
                    Thread t = new Thread(new ThreadStart(Read));
                    t.Name = "Read_" + (i + 1);
                    t.Start();
                }
            }
       /// <summary>
            /// 读取数据
            /// </summary>
            private void Read()
            {
                //DateTime date1 = DateTime.Now;
                int i = 0;
                int length = encrypt.GetCleanInfCount(textBox2.Text, textBox1.Text);
                while (10000 * i + 1 <= length)
                {
                    TaskInfo Task = new TaskInfo(++i, textBox2.Text.Trim(), textBox1.Text.Trim());
                    lock (myLock)   // 任务队列为临界资源,需要锁  
                    {
                        TaskQueue.Enqueue(Task);
                    }
                    TaskSemaphore.Release(1);   // 每添加一个任务,信号量加1  
                }
                //MessageBox.Show((DateTime.Now - date1).TotalSeconds.ToString());        }
      

  2.   

    建议你使用Task类执行并发操作,不建议自己新建线程去多线程操作的,关于并行编程可以参考下面的文章:
    http://msdn.microsoft.com/zh-cn/library/dd460693.aspx