Mono如何关闭OSX上的文件句柄? (“打开文件太多”问题)

时间:2015-03-30 08:33:59

标签: macos mono

我目前正在将.Net应用程序移植到OSX,并且在应用程序崩溃时遇到问题"太多打开的文件"例外。我能够发现OSX每个应用程序有256个打开文件限制(默认情况下),并且在某些情况下我的应用程序超出此限制。但是,我无法找出为什么OSX认为我将文件保持打开状态。

例如,这个简单的命令会使目录中的所有文件都保持打开状态,即使我没有打开它们:

var files = Directory.GetFiles("/Users/test/MonoDebug/")

我通过以下方式检查打开文件列表:

lsof -c mono

有人知道如何防止这种情况吗?这是正常的单声道行为吗?

OSX 10.9.5,Mono 3.12.1

1 个答案:

答案 0 :(得分:0)

也许您在Mono源代码中发现了资源泄漏?

GetFiles()方法作为内部调用(C代码)实现。然后你应该看io.c,或许在某处找不到对FindClose()函数的调用?