ThreadPool 中没有足够的自由线程来完成该操作。

liu932830768 2016-10-13 08:59:49
运行c#项目时,出现如题的错误“ThreadPool 中没有足够的自由线程来完成该操作。“,有哪位大神知道如何解决么?不尽感激!

出错代码

//request response async
var asyncResult = request.BeginGetResponse(callback, null); //出错位置
if (asyncResult.CompletedSynchronously) return response;

...全文
403 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu932830768 2016-10-14
  • 打赏
  • 举报
回复
不好意思,回复晚了,问题原因已经找到,原因正如楼上所说的,启动了数量多 生存周期又短的线程,导致线程池资源耗尽。
  • 打赏
  • 举报
回复
试试ThreadPool.SetMaxThreads
stherix 2016-10-13
  • 打赏
  • 举报
回复
引用 3 楼 daixf_csdn 的回复:
线程被你用完了,如果你是大量的启动新线程,那就不应该用ThreadPool,你应该使用 new Thread
只能用1楼的方法 用Thread类启动大量线程 花销比较大 尤其是启动数量多 生存周期又短的线程
圣殿骑士18 2016-10-13
  • 打赏
  • 举报
回复
线程被你用完了,如果你是大量的启动新线程,那就不应该用ThreadPool,你应该使用 new Thread
xian_wwq 2016-10-13
  • 打赏
  • 举报
回复
引用 楼主 liu932830768 的回复:
运行c#项目时,出现如题的错误“ThreadPool 中没有足够的自由线程来完成该操作。“,有哪位大神知道如何解决么?不尽感激! 出错代码

            //request response async
            var asyncResult = request.BeginGetResponse(callback, null); //出错位置
            if (asyncResult.CompletedSynchronously) return response;
个人感觉问题出在线程内部 如果线程很快能执行完,那ThreadPool肯定不会满 可能执行线程长时间没有结束,导致达到上线,没有资源可用了

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧