Multithreading 使用Cocoa和辅助线程
我正在构建一个Cocoa应用程序,它有一个工作线程,等待输入数据,当输入数据可用时,处理它并请求对处理后的数据进行显示更新 我遇到了同步问题,因为我的控件的drawRect正在与我的工作线程异步调用,我不希望在处理数据时访问数据。但是,我确实需要显示每个已处理的数据块 我现在看到的唯一解决方案是使用互斥体和事件来确保在process函数之后绘制每个数据块,并使用另一组互斥体来确保在处理数据时没有调用drawRectMultithreading 使用Cocoa和辅助线程,multithreading,macos,cocoa,Multithreading,Macos,Cocoa,我正在构建一个Cocoa应用程序,它有一个工作线程,等待输入数据,当输入数据可用时,处理它并请求对处理后的数据进行显示更新 我遇到了同步问题,因为我的控件的drawRect正在与我的工作线程异步调用,我不希望在处理数据时访问数据。但是,我确实需要显示每个已处理的数据块 我现在看到的唯一解决方案是使用互斥体和事件来确保在process函数之后绘制每个数据块,并使用另一组互斥体来确保在处理数据时没有调用drawRect 这对我来说似乎有点笨拙,我想知道是否有更优雅的方法来解决这个问题?(我不想在Co
这对我来说似乎有点笨拙,我想知道是否有更优雅的方法来解决这个问题?(我不想在Cocoa的主循环中运行我的工作线程,因为它在数据可用之前一直处于阻塞状态)使用现代方法而不是显式锁定如何 这是您正在描述的一种非常适合操作队列的方法(从10.6开始在OSX上可用) 你可以退房