日期:2014-05-18  浏览次数:20964 次

求救,关于死循环里异步调用导致内存溢出的问题
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://" + ipAddress + ":" + ipPort + "/");
listener.Start(); 
AsyncCallback ac = new AsyncCallback(process);
while (true)
{
if (listener.IsListening)
listener.BeginGetContext(ac, listener);
Thread.Sleep(10);
}

开始以为process方法中释放的问题,最后屏蔽掉process里面的内容,啥都不做。还是内存不断的累加,最后溢出。

而我屏蔽掉listener.BeginGetContext(ac, listener);则内存不累加。

------解决方案--------------------
process中做了什么,有没有EndGetContext
------解决方案--------------------
应该是IAsyncResult ar一直累加引起的吧