我正在使用 Cocoa 作为图形界面的 OS X 应用程序。但我的主要算法是用 C++ 编写的。该界面仅显示了 NSTextFields 和 NSLevelIndicator 中算法的一些值。
屏幕需要实时刷新来自算法的数据。
我所做的是一个 NSThread,它从算法中读取数据并放在屏幕上。但我认为这不是正确的方法。
你有什么建议?
我正在使用 Cocoa 作为图形界面的 OS X 应用程序。但我的主要算法是用 C++ 编写的。该界面仅显示了 NSTextFields 和 NSLevelIndicator 中算法的一些值。
屏幕需要实时刷新来自算法的数据。
我所做的是一个 NSThread,它从算法中读取数据并放在屏幕上。但我认为这不是正确的方法。
你有什么建议?
通常,您应该只从主线程更新 GUI。您可以使用如下代码向主线程提交一些工作:
dispatch_async(dispatch_get_main_queue(), ^{
[myTextField setStringValue:@"a new string"];
});
您可以使用几种方法: