这是我得到的错误:
MonoMac.AppKit.AppKitThreadAccessException:AppKit一致性错误:您正在调用只能从UI线程调用的方法。
我想按照in the apple documentation图14-1所示布置我的程序。
The following stack-overflow question seems to suggest this can be achieved in cocoa
文档似乎表明多个gl上下文是完全合理的,所以我猜测至少其中一些必须存在于主UI线程之外。
我在猜this could well be the problem。但是,我想确保单独线程中的nsglcontext没有隐含的危险,并且只需遵循使用多线程opengl程序时常用的预防措施。
任何帮助都会使我的桌子不再受到抨击,因此非常感谢。
答案 0 :(得分:2)
正如问题中的博客文章链接所示,您可以使用以下内容来转换交叉线程ui检查。
//
// Disable UIKit thread checks for a couple of methods
//
var previous = UIApplication.CheckForIllegalCrossThreadCalls;
UIApplication.CheckForIllegalCrossThreadCall = false;
// Perform some UIKit calls here
foo.Bar = 1;
// Restore
UIApplication.CheckForIllegalCrossThreadCalls = previous;
请注意,如果你做错了,这也会隐藏问题,所以请谨慎使用。