我已经编写了以下代码来检查内存是否充足:
while (true)
{
try
{
// Check for available memory.
memFailPoint = new MemoryFailPoint(250);
break;
}
catch (InsufficientMemoryException ex)
{
if (memFailPoint != null)
{
memFailPoint.Dispose();
}
Thread.Sleep(waitSecond * 1000);
}
}
我正在Windows 7 64位计算机上的控制台应用程序中运行以上内容。
每10秒钟有4个调用该方法。
起初它运行良好,但在2-3个小时后,总是会抛出InsufficientMemoryException
异常。我检查了可用内存,显示超过1 GB。
我尝试了很多次,但无法找到此问题的原因。
以下是堆栈跟踪:
at System.Runtime.MemoryFailPoint..ctor(Int32 sizeInMegabytes)
at SocketListner.AcceptConnection(IAsyncResult res) in H:\Projects\SocketListner.cs:line 308
没有内部异常。