我是Iphone开发的新手,我正在开发线程。
我创建了两个这样的队列:
dispatch_queue_t **Queue1** = dispatch_queue_create("Queue1", NULL);
dispatch_queue_t **Queue2** = dispatch_queue_create("Queue2", NULL);
我在Queue1中添加了这样的任务:
dispatch_async(**Queue1**, ^{
[self HandleDownloadResponse];
});
dispatch_async(**Queue1**, ^{
dispatch_async(dispatch_get_main_queue(), ^{
});
});
当我收到我的网络服务的回复时, Queue1 会被执行并且它正在使用Sqllite3数据库。
当我从我的设备传输数据时, Queue2 会被执行,并且也会使用sqllite3。
我的问题是:当我在数据传输开始之前首先收到Web服务响应时,我收到了数据库锁定错误。
所以当我的 Queue2 变为活动状态时,我想暂停(睡眠) Queue1 。我该怎么做?
答案 0 :(得分:0)
你可以试试这个
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// response from webservice
dispatch_async(dispatch_get_main_queue(), ^{
//insert into database
}
}