有10000个任务已经排好队了,线程池中有100个线程正在运行。
for (int i = 0; i < dt.Count; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), i); }
运行过程中有1000个紧急任务需要及时运行,请问怎么把这1000个任务插入到这个队列中(不是排在队列最后,要排在正在运行的任务的最后一个后面)?
for (int i = 0; i < dt.Count; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), i); }
运行过程中有1000个紧急任务需要及时运行,请问怎么把这1000个任务插入到这个队列中(不是排在队列最后,要排在正在运行的任务的最后一个后面)?
解决方案 »
- .net 中clr存储过程如何赋值
- 关于实体类的问题
- 如何解决文本文件编码问题?在读取文件时不知道要读取的文件是什么编码,怎么获得?
- winform中怎样终止一个程序的运行(急)
- 关于在数据实体类和DataTable间使用反射进行数据转换
- 怎样将字符串中的全角和半角字符区分出来?
- 如何将已经得到的dataset插入到一张临时表,即利用已有的dataset在sql server2000中生成一张临时表?急求实例!!!
- dev gridcontrol 指定位置插入行
- c/s结构与mvc架构能同时共存吗?
- 救命呀! 1310已经把我逼疯了!
- 使用delegate 后无法关闭Form
- 子窗体如何向父窗体listview传值?
2:100个线程被压入线程池,系统不会保证100个线程马上就会被运行;
3:即使存在两个队列,一个队列是优先级普通线程,一个队列是优先级高的线程,也不能保证是优先级高的线程执行完毕后再依次执行普通优先级线程;
4:个人感觉,你的插入队列和线程优先级没有任何关系,只要写个线程状态判断,然后插入这个LIST的当前位置就行,跟线程本身没有任何关系
在.NET2.0下好像应该是250个,但是可以设定这个最大值,比如到300个,但是一个应用程序运行那么多线程就说明设计有问题。