DownloadText
메서드를 사용하여 AppendBlob 내용을 다운로드 중이며 메모리 누수가 발생합니다. 그것은 이미 누구에게 일어 났습니까? 내가 사용하는 코드 :AppendBlob를 사용한 메모리 누수
private string[] GetBlobLines(CloudAppendBlob blob)
{
string text = "";
try
{
lock (_blobContainerLock)
{
text = blob.DownloadText();
}
}
catch (Exception e)
{
WriteToTable(MessageType.ERROR, "Error reading log lines: " + e.Message);
}
return text.Split('\n'); ;
}
public string GetLastLogRows(uint count)
{
var sb = new StringBuilder();
var blob = _currentBlob;
int lineCount = 0;
int blobOffset = 0;
while (lineCount < count)
{
var lines = GetBlobLines(blob);
var blobLineCount = lines.Count();
var i = blobLineCount - 1;
while ((lineCount < count) && (i > -1))
{
sb.AppendLine(lines[i--]);
lineCount++;
}
if (lineCount < count)
{
blobOffset++;
blob = _blobContainer.GetAppendBlobReference($"{BLOB_PREFIX}{_currentBlobIdx - blobOffset}");
if (!blob.Exists())
break;
}
}
return sb.ToString();
}
프로그래밍 오류가 발생했을 수 있습니다. 코드를 게시 할 수 있습니까? 나는 당신이 사용하지 않는 것 같아요. – Peter
Microsoft 문서 https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudappendblob.aspx에서 인수가있는 DownloadText 메서드를 찾을 수 없습니다. 이것은 사용자가 구현 한 자체 확장 메서드입니다. ? 또는 이전 버전의 저장소 DLL을 사용하고 있습니까? – Peter
아니요, 모든 4 개의 매개 변수는 기본적으로 null입니다. – azrael