什么会导致我的 TPL 任务停止 运行?
What can cause my TPL tasks to stop running?
我有以下代码:
while (true)
{
Task.Run(() =>{
var request = WebRequest.Create("url1");
request.GetResponse();
});
Task.Run(() =>{
var request = WebRequest.Create("url2");
request.GetResponse();
});
Thread.Sleep(15000);
}
这个想法是每 15 秒调用几个端点。它可以正常工作大约 20 分钟,然后最终任务中的代码永远不会 运行。没有错误。我是否创建了太多任务?也没有内存不足的问题。
根据@AlexeiLevenkov 的评论提示从 request.GetResponse 获取对响应对象的引用,然后关闭响应解决了问题。
我有以下代码:
while (true)
{
Task.Run(() =>{
var request = WebRequest.Create("url1");
request.GetResponse();
});
Task.Run(() =>{
var request = WebRequest.Create("url2");
request.GetResponse();
});
Thread.Sleep(15000);
}
这个想法是每 15 秒调用几个端点。它可以正常工作大约 20 分钟,然后最终任务中的代码永远不会 运行。没有错误。我是否创建了太多任务?也没有内存不足的问题。
根据@AlexeiLevenkov 的评论提示从 request.GetResponse 获取对响应对象的引用,然后关闭响应解决了问题。