数据库中有一张A表。如果有要处理的订单数据就会进入到A表,我需要每隔几秒就查下有要处理的订单吗。如果使用计时器每隔几秒搜索一次,有要处理的订单就for循环读取数据处理我感觉效率太低,所以就想使用ThreadPool来处理,因为之前没用过,我贴代码大家帮忙看下有哪儿些问题?还有就是如果是调用全局变量的话,线程池里的线程之间会出现混乱吗,就是线程1会读到线程2的变量值吗?private void Form1_Load(object sender, EventArgs e)
{
ThreadPool.SetMaxThreads(200, 200);
ThreadPool.SetMinThreads(100, 100);
TimerCallback timerDelegate = new TimerCallback(test);
System.Threading.Timerime = new System.Threading.Timer(timerDelegate, this, 0, 5000);
}
public void test(object obj)
{
ThreadPool.QueueUserWorkItem(delegate(object obj1)
{
deal();
Thread.Sleep(1000);
});
}
public void deal()
{
//一次性读取表里top20的数据进行业务处理
}
{
ThreadPool.SetMaxThreads(200, 200);
ThreadPool.SetMinThreads(100, 100);
TimerCallback timerDelegate = new TimerCallback(test);
System.Threading.Timerime = new System.Threading.Timer(timerDelegate, this, 0, 5000);
}
public void test(object obj)
{
ThreadPool.QueueUserWorkItem(delegate(object obj1)
{
deal();
Thread.Sleep(1000);
});
}
public void deal()
{
//一次性读取表里top20的数据进行业务处理
}
用ThreadPool的时候,如果是用全局变量的话,注意在每个Thread操作变量的时候加锁,操作完毕之后解锁就行了。