c# – 如何确定ThreadPool队列中的项目数
发布时间:2020-12-15 07:56:05 所属栏目:百科 来源:网络整理
导读:我正在使用ThreadPool来排队1000个工作项 While(reading in data for processing){ args = some data that has been read; ThreadPool.QueueUserWorkItem(new WaitCallback(threadRunner),args);} 然而,这非常有效,因为主线程将请求排队的速度比处理内存的速
我正在使用ThreadPool来排队1000个工作项
While(reading in data for processing) { args = some data that has been read; ThreadPool.QueueUserWorkItem(new WaitCallback(threadRunner),args); } 然而,这非常有效,因为主线程将请求排队的速度比处理内存的速度慢得多. 我希望做一些类似于以下内容的事情,以便在队列增长时限制排队 Thread.Sleep(numberOfItemsCurrentlyQueued); 随着队列的增长,这会导致更长的等待时间. 有没有办法发现队列中有多少项? 解决方法
我不认为有内置方式,但你可以引入一个会增加/减少的[静态?]计数器;为此你必须创建自己的方法来包装ThreadPool.QueueUserWorkItem()并处理计数器.
顺便说一句,万一你运行.NET 4.0,你应该使用TaskFactory.StartNew而不是ThreadPool.QueueUserWorkItem() – 据说它有更好的内存/线程管理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- cocos2dx 学习笔记
- React Native – 在AppDelegate(iOS)中将事件从Native发送到
- selenium启动报错“ incorrect JSON status mapping for &#
- ios – Apple Mach-O Linker错误,我不知道该怎么办
- React Native ListView 资源收藏
- ruby-on-rails – Rails / Heroku – 如何防病毒扫描上传的
- 正则表达式中(.)的行为是什么?
- ruby – RestClient.get返回证书验证失败
- 在II7.5下支持Ajax的代码运行时的IIS配置说明
- .net – 根据屏幕分辨率更改表格分辨率(不更改显示器分辨率