【发布时间】:2016-01-15 16:40:19
【问题描述】:
我有以下代码:
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 分钟,然后最终任务中的代码永远不会运行。没有错误。我是否创建了太多任务?也没有内存不足的问题。
【问题讨论】:
-
如果它是您的实际代码,它缺少
using(或Dispose) - 所以它应该很快就会失败您看到的方式......否则请确保提供重现的示例问题 -
不,这几乎是代码。感谢您的评论,但究竟使用和处置什么?
-
丢弃任何一次性的(请求、响应、流...)
-
我明白了。您的意思是获取对请求对象的引用并关闭它。
标签: c# concurrency parallel-processing task-parallel-library