我在贏取窗體中工作。在執行以下操作時發生錯誤。 它顯示我System.OutOfMemoryException
錯誤,當我嘗試連續運行2-3次左右的操作。似乎.NET不能釋放操作中使用的資源。我用於操作的文件相當大,大約在以上,大於500 MB。System.OutofMemoryException在執行GZipStream壓縮時拋出
我的示例代碼如下。請幫助我如何解決錯誤。
try
{
using (FileStream target = new FileStream(strCompressedFileName, FileMode.Create, FileAccess.Write))
using (GZipStream alg = new GZipStream(target, CompressionMode.Compress))
{
byte[] data = File.ReadAllBytes(strFileToBeCompressed);
alg.Write(data, 0, data.Length);
alg.Flush();
data = null;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
相反ReadAllBytes',打開源文件',並在循環使用它'Read'方法 –
'ReadAllBytes'是殺手鐗 - 這會讓你的內存超過500MB到 – Reniuz
究竟哪一行導致了OOM異常? – aquinas