1

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

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

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

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

我发现这个错误可能相关也可能不相关。

4

1 回答 1

1

ASP.NET 和 Gdk 完全不相关。前者处理 HTTP,后者处理屏幕和原生工具包(X11、wayland 等)。

您在 Mono.Cairo 主页中看到的限制与任何 Gtk 应用程序相同:不要在不正确的线程中触摸 UI。gui-thread-check(现在默认捆绑在 Gtk-Sharp3 中)是一个方便的工具,可以在调试模式下在运行时找出这种错误的操作。

于 2013-11-05T15:06:12.470 回答