0

今天我正在测试我在两个不同的控制器中构建的项目,一个 ViewController 和一个 TCPController。我的 ViewController 实例化了更新输出和输入流的 TCPController(单例)。现在在测试中,我可以确定 GUI 界面有一些滞后,这很容易归咎于 TCPController。

在我使用 Apple 网站上的标准教程之前,是否有关于如何线程化 TCP 控制器(客户端)的最佳实践:https ://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Multithreading/CreatingThreads /CreatingThreads.html

非常欢迎有关如何解决此问题的示例。

4

1 回答 1

1

阅读文档总是一个好主意。

你所做的部分取决于你的沟通框架。大多数好的框架已经提供了异步方法。如果你的没有。寻找别的东西。

除此之外,一般来说,您将希望在后台线程中执行您的代码。如果这是一项长期的工作,那么以下应该可以解决问题......

dispatch_queue_t commQ = dispatch_queue_create("some.unique.labe", 0);
dispatch_async(commQ, ^{
    // Now, any code running in this block is running in a different thread.
    // When you get done, and want to talk to the UI, you must use the main
    // queue for any UIKit calls...

    dispatch_async(dispatch_get_main_queue(), ^{
        // Now this code is running on the main queue
        // Do all your UI stuff here...

    });
});
dispatch_release(commQ);
于 2012-06-01T02:18:11.030 回答