0
내 응용 프로그램에서 파일 공유 및 웹 브라우저에서 파일을 업로드하기 위해 WiFi에서 서버를 엽니 다. 주 스레드 (UI 스레드)에서 작동하고 많은 문제가 발생하는 문제가 있습니다. 배경에서 대신이 코드를 작동시키는 방법이 있습니까?백그라운드 스레드에서 CFReadStreamClientCallBack
내가 읽은 스트림이 방법으로 비 차단합니다 :
이
코드입니다if (!CFReadStreamSetClient (theReadStream,
kCFStreamEventHasBytesAvailable | kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered | kCFStreamEventOpenCompleted,
(CFReadStreamClientCallBack)&MyCFReadStreamCallback,
(CFStreamClientContext *)(&theContext)))
{
NSError *err = [self getStreamError];
NSLog (@"AsyncSocket %p couldn't attach read stream to run-loop,", self);
NSLog (@"Error: %@", err);
if (errPtr) *errPtr = err;
return NO;
}
그리고이 방법 전화 :
static void MyCFReadStreamCallback (CFReadStreamRef stream, CFStreamEventType type, void *pInfo)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
AsyncSocket *socket = [[(AsyncSocket *)pInfo retain] autorelease];
[socket doCFReadStreamCallback:type forStream:stream];
[pool release];
}
이 소스 코드가 난입니다 사용 : http://code.google.com/p/cocoaasyncsocket/