首页
新闻
会员
周边
捐助
园子
·
关注
·
粉丝
·
会员
·
随便看看
·
消息
欢迎,请先
登录
或者
注册
。
登录
/
注册
闪存
博客
发言
小组
投递
新闻
提问
博问
添加
收藏
文库
问题反馈
问题列表
我关注的
我的博问
博问标签
如何在线程池中实现限时执行功能
0
悬赏园豆:
20
[已解决问题]
解决于 2008-08-14 09:12
<P>我想实现这样一个功能,一个方法放在线程池中执行,由于某些原因可能导致其很久还是没有完成,但是这样的话会长久占着线程池,导致后面的任务没法进行,或是耗尽了线程池的资源,因此我想设定一个限时执行的功能,比如超过5分钟,就中止它,哪位可以提供一下思路啊,我看了一下smartthreadpool好像没有这个功能,高手请指点啊</P>
.NET技术
C#
lexus
|
初学一级
|
园豆:
0
提问于:2008-08-07 09:25
显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
<
>
分享
分享您的问题
最佳答案
0
System.Threading命名空间中的Monitor类有一TryEnter方法可以完成该功能,具体声明如下: Monitor.TryEnter (Object, Int32) 在指定的毫秒数内尝试获取指定对象上的排他锁。 Monitor.TryEnter (Object, TimeSpan) 在指定的时间量内尝试获取指定对象上的排他锁。 注意,该方法需要配合try语句执行。
greater
|
菜鸟二级
|
园豆:250
|
2008-08-07 19:40
编辑文本
预览
上传图片
Ctrl+Enter键快速提交
其他回答(2)
0
长久耗时的任务不应该放入线程池来执行。 线程池中的线程应当执行密集型计算且耗时短的任务。 像楼主的情况应该使用单独的线程来完成任务,如果要多次重复执行该任务,可以实现自己的专用线程池。
Angel Lucifer
|
园豆:775
(小虾三级)
|
2008-08-07 15:48
编辑文本
预览
上传图片
Ctrl+Enter键快速提交
0
TryEnter完,别忘了在finally里面,执行Monitor.Exit ...
咸蛋超人
|
园豆:485
(菜鸟二级)
|
2008-08-10 16:19
编辑文本
预览
上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要
登录
以后才能回答,未注册用户请先
注册
。