当 NSStream 连接失败或出现流错误并尝试在睡眠后重新连接时,我正在尝试在下面的代码中使用睡眠。睡眠正在工作,但它使整个应用程序进入睡眠状态。
我已经将 NSStream 作为线程启动,但是当收到 NSStreamEvent 时,handleEvent 似乎作为同步方法工作。
关于在这段代码中使用睡眠的任何想法..?我只想让睡眠单独为流线程工作。
- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)event
{
case NSStreamEventErrorOccurred:
{
NSError *streamErr = [stream streamError];
NSString *strErr = [streamErr localizedFailureReason];
[self CloseStream];
NSLog(@"Stream Error ::: %@",strErr);
//[NSThread sleepForTimeInterval : 15];
sleep(15);
[self Initialize];
[self OpenStream];
break;
}
case NSStreamEventEndEncountered:
{
NSLog(@"Connection Closed by the Server");
[self CloseStream];
usleep(15000);
[self Initialize];
[self OpenStream];
break;
}
}