Ios UI消失和解析在信号量\u等待\u陷阱处被阻止的查询

Ios UI消失和解析在信号量\u等待\u陷阱处被阻止的查询,ios,objective-c,xcode,semaphore,Ios,Objective C,Xcode,Semaphore,在我的应用程序中,用户有一个时间轴,其中显示来自朋友的帖子,但查询会随机停止,不再执行 更确切地说,我之前有一个问题:我的应用程序被冻结在psynch\u mutexwait,我通过使用dispatch\u async(dispatch\u get\u global\u queue(dispatch\u queue\u PRIORITY\u DEFAULT,0),^{}修复了它用于在后台线程上运行的查询,但更准确地说: 我有两个查询,分别每3秒和4秒循环运行一次,由两个相应的shcheduled

在我的应用程序中,用户有一个时间轴,其中显示来自朋友的帖子,但查询会随机停止,不再执行

更确切地说,我之前有一个问题:我的应用程序被冻结在
psynch\u mutexwait
,我通过使用
dispatch\u async(dispatch\u get\u global\u queue(dispatch\u queue\u PRIORITY\u DEFAULT,0),^{}修复了它用于在后台线程上运行的查询,但更准确地说:

我有两个查询,分别每3秒和4秒循环运行一次,由两个相应的
shchedulednstimer

新帖子的第一个查询循环(在这种情况下,用户不必手动刷新):

第二个查询是查询用户的状态,例如,如果用户处于“联机”、“脱机”或“断开连接”

通过使用
dispatch\u async(dispatch\u get\u global\u queue(dispatch\u queue\u PRIORITY\u DEFAULT,0),^{},所有这些都可以正常工作

但是,查询会随机停止(应用程序也不会冻结…(我可以通过控制台中的
NSLog
看到这一点)当我暂停时,在左侧窗口中,我可以看到
信号灯\u等待\u陷阱上的背景线程

有人知道如何解决这个问题吗

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    PFQuery *query = [PFQuery queryWithClassName:@"Posts"];

    [query whereKey:@"user" notEqualTo:[PFUser currentUser]];
    [query whereKey:@"user" containedIn:self.allFriends];

    [qFriendInfo findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

        if (!error) {

           //Used to display results in UICollectionView
            self.AllPosts = [[NSArray alloc] initWithArray:objects];
        }
});
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    PFQuery *query = [PFUser query];

    [query whereKey:@"objectId" notEqualTo:[PFUser currentUser].objectId];
    [query whereKey:@"objectId" containedIn:self.allFriendsIds];

    [qFriendInfo findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

        if (!error) {

        //Used to display results in UICollectionView
           self.allUsers = [[NSArray alloc] initWithArray:objects];   
        }
});