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

前端之家收集整理的这篇文章主要介绍了C#Mono {new Bitmap(“fileName”);}只是挂在OSX上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当尝试使用mono的版本的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...
}

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

call Status System.Drawing.GDIPlus:GdiplusStartup (UInt64,GdiplusStartupInput,GdiplusStartupOutput)

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

解决方法

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

猜你在找的C&C++相关文章