1
我有一個需要並行處理文件的進程,所以我試圖使用.net的任務庫來完成此任務。我有一類瓶坯任務在一個靜態方法,像這樣:任務並行性,內存管理和任務結束
Task.Factory.StartNew(
() => FileProcessor.ProcessAFile(new FileInfo(e.FullPath)));
的問題是,它似乎是線程永遠不會釋放或一次靜態方法完成的內存空間還沒有回收。該方法正在執行一些圖像操作,因此可以保留大量的內存,並且我注意到該進程在平鋪之前消耗大約1 GB的內存。這是ThreadPool在後臺工作,並確定1 GB是適當的內存量,還是我有更深的內存泄漏問題?
」之前它「水平」。是你的答案。 ThreadPool和任務都與內存管理無關 - 由GC決定何時收集內存和使用多少內存。 –
如果您在完成後持續提及「任務」,則GC可能永遠沒有機會以您期望的方式工作。 – Noseratio