我目前正在尝试将整个网络操作放在后台线程中运行,因为当前的情况是当服务器不可用时(例如),它会阻塞主线程。
我目前通过以下代码创建网络连接。有没有简单的方法可以在新的后台线程中运行它?
如何将接收到的消息传递回主线程?如何通过后台线程发送消息?
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)ipAdress, port, &readStream, &writeStream);
inputStream = (__bridge NSInputStream *)readStream;
outputStream = (__bridge NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];