在我的代码中,当滚动CollectionView(monotouch)时,我收到了很多“太多打开的文件”错误。此错误的问题在于很难找到此错误的原因。
花了很多时间后,我终于找到了原因,这就是这段代码:
using(var request = new HttpRequestMessage (HttpMethod.Get, uri)){
var ResponseMessage = await HttpDownloadManager.SendAsync (request, HttpCompletionOption.ResponseHeadersRead);
ResponseMessage.Dispose(); // I just added this to see if it solves the problem
}
如果我删除此“SendAsync”电话,我不再有任何错误。 我也在使用HttpClient的另一个调用:
byte[] data = await HttpDownloadManager.GetByteArrayAsync (datamodel.uri);
这个电话不会给我任何问题。
当我在收到此错误时输入“lsof”时,我会看到以下几行:
30u IPv4 SomeValueHere 0t0 TCP SomeIPHere:51663->SomeURLHere:http (CLOSE_WAIT)
有人有想法吗?