2013-07-30 27 views
1

Mono.Cairo Homepage says“不要尝试在除主(Gdk)线程以外的线程中使用开罗”。Mono.Cairo是否是自由线程的,它可以有效地用于服务器端吗?

这似乎意味着在多个线程(如ASP.NET应用程序)中使用Cairo时出现问题。

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

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

我找到了this bug,它们可能相关也可能不相关。

回答

1

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

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

相关问题