当前位置: 代码迷 >> C# >> 一个线程池的有关问题
  详细解决方案

一个线程池的有关问题

热度:32   发布时间:2016-05-05 04:48:23.0
一个线程池的问题
我的目的 定时读取数据库 把数据更新到控件
我想用线程池 后台 加载 等数据读好了后 加载到控件上。

我调试的时候for循环没始终没有结束的好像一直死循环了


 private void UpdateDataBaseTimer_Tick(object sender, EventArgs e)
            {
                 //  计时器定时触发 然后用线程池加载一个读取数据库的线程
                  System.Threading.ThreadPool.QueueUserWorkItem(new WaitCallback(this.ReadDataBase));
            }

private void ReadDataBase(object obj)
{
         //dt是数据库返回的 datatable 类型的数据集合
        //这里读取数据库返回一个datatable 绑定控件的
        for(int a=0;a<dt.rows;a++)
        {
               dataList[a].Add(dt.row[a][0])
               这里的a 有时0 有时 3 一直没有到6 就一直在里面
        }
}

导致了 缓存dataList 里的count 不稳定 总是有不完整的数据。就报 索引超出范围之类的。
------解决思路----------------------
你是多个线程执行这一个函数吗?
------解决思路----------------------

代码不完整。
------解决思路----------------------
调试多线程不能断点跟
你在timer里不断的启动线程
多个线程都执行同一个函数,同一段代码

你设置断点,谁知道断点到底停在哪个线程了
  相关解决方案