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

.Net技术 码拜 7年前 (2017-04-25) 3230次浏览
运行c#项目时,出现如题的错误“ThreadPool 中没有足够的自由线程来完成该操作。“,有哪位高手知道怎么样解决么?不尽感激!
出错代码

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

10

试试ThreadPool.SetMaxThreads

10

引用:

运行c#项目时,出现如题的错误“ThreadPool 中没有足够的自由线程来完成该操作。“,有哪位高手知道怎么样解决么?不尽感激!
出错代码

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

个人感觉问题出在线程内部
假如线程很快能执行完,那ThreadPool肯定不会满
可能执行线程长时间没有结束,导致达到上线,没有资源可用了

10

线程被你用完了,假如你是大量的启动新线程,那就不应该用ThreadPool,你应该使用 new Thread

10

引用:

线程被你用完了,假如你是大量的启动新线程,那就不应该用ThreadPool,你应该使用 new Thread

只能用1楼的方法
用Thread类启动大量线程 花销比较大 尤其是启动数量多 生存周期又短的线程


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明ThreadPool 中没有足够的自由线程来完成该操作
喜欢 (0)
[1034331897@qq.com]
分享 (0)