2009-07-27 82 views
2

上运行的套接字流我有打开具有2个插槽的连接(进出)的应用程序,我想有他们在一个线程中运行。在一个线程

,我想他们是在一个单独的线程的原因是,我不希望我的应用程序时,我接收数据冻结,只要在应用程序运行随时会发生这种情况。

目前我有一个处理也是网络通讯类和我运行这个类在的NSOperation,我不知道这是否是最好的解决办法。

我不是很熟悉线程,因此球员,如果你可以给我一些帮助,我将非常感激。

感谢

回答

2

首先,你应该知道,你可以使用相同的插槽来发送和接收数据 - 它们通常是双向的。您应该能够在多个执行线程中共享对相同套接字的引用。其次,除非您会收到大量数据,并且遇到与您的用户界面有关的性能问题,否则我会延迟对其进行优化。 (不要误解我的意思,这是一个很好的考虑因素,但是不成熟的优化是所有邪恶的根源,如果它的性能足够好,简单一般会更好。)

第三,NSOperation对象是“一次性”这意味着一旦main方法完成,操作任务就不能再次使用。这可能会或可能不会有利于您的网络模式。您也可以查看NSThread。事实证明,你已经具备了“分解出来”的功能,可以预示你的设计,无论什么事情都是最好的。

最后,线程是一个复杂的话题,但开始的好地方(特别是Objective-C)是Apple的Threading Programming Guide

相关问题