NSStream 接続が失敗した場合、またはストリーム エラーが発生してスリープ後に再接続しようとした場合に、以下のコードでスリープを使用しようとしています。スリープは機能していますが、アプリケーション全体がスリープ状態になります。
NSStreamをThreadとして起動したのですが、NSStreamEventを受信するとhandleEventが同期メソッドとして動作しているようです。
このコードに Sleep を使用するアイデアはありますか? ストリームスレッドだけでスリープが機能するようにしたいだけです。
- (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;
}
}