C#Mono {new Bitmap("fileName");}只是挂在OSX上

zez*_*000 8 c# macos mono bitmap

当尝试使用单声道版本的System.Drawing.Bitmap对象在OSX 10.7.3上加载".bmp",".png"或".jpg"时,应用程序只会挂起.我没有得到任何错误,应用程序只是卡在Bitmaps构造函数上...

当我在(Arch)Linux或Windows上运行相同的代码时,一切正常.

public static void Main (string[] args)
{
    using (var bitmap = new Bitmap("/....../image.bmp"))
    {

    }

    Console.WriteLine ("Hello World!");// Never gets here...
}
Run Code Online (Sandbox Code Playgroud)

如果我在调试模式下暂停应用程序,它会打开"反汇编"窗口并显示它卡在这一行:

call Status System.Drawing.GDIPlus:GdiplusStartup (UInt64, GdiplusStartupInput, GdiplusStartupOutput)
Run Code Online (Sandbox Code Playgroud)

注意:在调试模式下暂停应用程序几次后,"Magically"在写入时开始工作.我承诺我没有更改任何代码.谁知道什么可以导致"System.Drawing.GDIPlus"挂起所以我知道如何避免它?是否有单声道的codex设置文件或可能有垃圾箱的东西?

Ant*_*mas 5

问题只是表现.它与你的代码无关; 图像只需要更长的时间来加载.
Mono的实现System.Drawing只是一个C#包装器,有点不完整,并没有(或错误地)提供所有功能System.Drawing.它可能在Windows中运行良好,因为它使用本机GDIPlus.dll但在基于unix的系统中可能无法正常运行,因为它使用Cairo引擎.您可以在此处找到更多信息.