Mono.Cairo是免费线程的,它可以有效地用于服务器端吗?

时间:2013-07-30 16:17:37

标签: asp.net multithreading mono cairo imaging

Mono.Cairo Homepage says“不要尝试在主(Gdk)线程以外的线程中使用Cairo。”

这似乎意味着在多个线程中使用Cairo存在问题,例如在ASP.NET应用程序中。

我想知道只要没有涉及共享数据,Cairo和Mono.Cairo是否可以安全地同时从多个线程使用。 (每个线程都有自己的上下文/表面等)。

如果有全局锁定,我也想了解这一点。 (例如,System.Drawing.Graphics.DrawImage()在许多版本的Windows上是进程范围的独占权。)

我发现this bug可能相关或不相关。

1 个答案:

答案 0 :(得分:1)

ASP.NET和Gdk完全不相关。前者处理HTTP,后者处理屏幕和本机工具包(X11,Wayland等)。

您在Mono.Cairo主页中看到的限制与任何Gtk应用程序相同:请勿触摸错误线程中的UI。在调试模式下运行时发现这种错误操作的方便工具是gui-thread-check(现在在Gtk-Sharp3中bundled by default)。