0

我有以下代碼:什麼會導致我的TPL任務停止運行?

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分鐘,然後最終任務中的代碼永遠不會運行。沒有錯誤。我是否創建了太多任務?沒有內存不足的問題。

+0

如果它是你的實際代碼,它缺少'使用'(或'Dispose') - 所以相對較快,它應該是失敗的你看到的方式...否則請務必提供樣品,再現問題 –

+0

沒有這個幾乎是代碼。感謝評論,但使用和處理什麼? – Shumii

+0

處理什麼是一次性的(請求,響應,流......) –

回答

0

從@AlexeiLevenkov提供的評論中提示,從request.GetResponse獲取對響應對象的引用,然後關閉響應,修復問題。

相關問題