繁体   English   中英

dispatch_semaphore_wait信号后没有响应

[英]dispatch_semaphore_wait not response after signal

sem = dispatch_semaphore_create(0);

// called by NSOperationQueue
-(void)waitFromUI
{
    NSLog(@"%@", [NSThread currentThread]);  //<NSThread: 0x60000007d7c0>{number = 3, name = (null)}
    NSLog(@"%ld",dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER));
}

// called by UI Button click
-(void)responseFromUI:(BOOL)response
{
    NSLog(@"%@", [NSThread currentThread]); //<NSThread: 0x600000060840>{number = 1, name = main}
    dispatch_semaphore_signal(sem);
}

请参阅代码,工作流是NSOperation块中的第一个waitFromUI ,然后在此块中通过performSelectorOnMainThread显示UI,然后单击此UI中的按钮以调用responseFromUI

函数dispatch_semaphore_wait在调用dispatch_semaphore_signal后没有结束,它会永远等待并阻塞我的主线程。 有人知道我的代码有什么问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM