我有这样一个需求:-(void) DoDataFromSeverBuf:(char*)cBuf len:(unsigned long)ulDataLength { //省略 主要是解析服务端数据
}
-(void)  HandleServerData(){ dispatch_queue_t queue = dispatch_queue_create("cn.com.test",DISPATCH_QUEUE_SERIAL); while(true){ unsigned char szBuf[MAX_LENGTH] = {};
unsigned int  nRecved = -1;
unsigned long ulBufferLen = 0;

nRecved = GetDataFormServer(szBuf);//从服务端拿数据

dispatch_async(queue,^{

  [self DoDataFromSeverBuf:szBuf len:nRecved];
});

}}
需要把每次从服务端读取的数据放到一个队列里去处理,但在实际跟踪调试的时候,发现szBuf的值为空,居然没取到值。但实际上从调用GetDataFormServer的跟踪调试的时候,szBuf是有值的,但为什么传给队列的block后,就没有值了呢?
难道dispatch_async 这样的函数,不能在for或while中调用????