NSThread sleepfortimeinterval blocks main thread

前端 未结 3 1512
庸人自扰
庸人自扰 2020-12-31 05:44

I want to simulate a communication with a server. As the remote server will have some delays I want to use a background thread that has on it

 [NSThr         


        
3条回答
  •  既然无缘
    2020-12-31 06:45

    It blocks whatever thread sleepForTimeInterval is running on. Run it on another thread to simulate your server delay like this:

    dispatch_queue_t serverDelaySimulationThread = dispatch_queue_create("com.xxx.serverDelay", nil);
    dispatch_async(serverDelaySimulationThread, ^{
         [NSThread sleepForTimeInterval:10.0];
         dispatch_async(dispatch_get_main_queue(), ^{
                //Your server communication code here
        }); 
    });
    

提交回复
热议问题