내 응용 프로그램에서 Windows 서비스를 사용하여 파일을 읽습니다. 이 서비스는 매초마다 파일을 읽습니다. 나는 System.OutOfMemoryException
을 얻고 약간의 시간 후에OutOfMemoryException 파일을 읽는 중
public static byte[] GetBytesFromFile(string fullFilePath)
{
FileStream fs = File.OpenRead(fullFilePath);
try
{
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
fs.Close();
return bytes;
}
finally
{
fs.Close();
}
}
: 이것은 내가 파일을 읽을 사용하고있는 코드입니다. 내가 여기서 뭐 잘못하고 있니?
업데이트 : 나는이 코드에 반환 된 바이트를 사용하고 있습니다 : 문제가 분명하다
object s = null;
System.Reflection.Assembly a = Assembly.Load(bytes);
object o = a.CreateInstance("ID_" + report.ID.ToString().Replace("-", "_"));
Type t = o.GetType();
MethodInfo mi = t.GetMethod(name);
object[] values = new object[1];
values[0] = nameValue;
s = mi.Invoke(o, values);
return s;
팁 : FileStream 유형에서 Using() 블록을 사용하십시오. 그렇게하면 마침내 또는 명백한 Close Call이 필요하지 않습니다. – Zenwalker
읽기 파일의 크기가 일정하거나 때로 다양합니까? – Zenwalker
당신이 읽으려고하는 파일의 크기는 어느 정도입니까? – ryadavilli