ios - 使用 DispatchGroup 在两个不同的类之间进行通信?
问题描述
我开始在主视图控制器中作为子/黑地线程执行任务。
class MainViewController: UIViewController {
let group = DispatchGroup()
override func viewDidLoad() {
super.viewDidLoad()
group.enter()
DispatchQueue.global(qos: .userInteractive).async {[unowned self] in
self.checkFolders()
sleep(50)
print("finished sleeping")
self.group.leave()
}
我希望另一个 viewController 阻塞,直到这个子线程完成它的任务。
class FirstTableViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
let startingPoint = Date()
MainViewController().group.wait()
print("\(startingPoint.timeIntervalSinceNow * -1) seconds elapsed")
dataCells = createArrayData() //create dataObjects
}
但是,它似乎并没有阻塞。我究竟做错了什么?谢谢你。
解决方案
推荐阅读
- c - 如果格式字符串没有 % 引用,vsprintf() 是否保证不访问 va_list?
- bash - 使用 Bash 交换日志文件名称中的日期戳时遇到问题
- xamarin - 从 Telerik UI RadDataGrid 中删除标题/过滤器按钮列
- c# - 如何将依赖项从库项目复制到主项目?
- osgi - osgi 服务:不满足活动服务的参考
- android - 截屏输出格式
- python - 如何使用这个api?
- php - 如何使用–with-password-argon2 编译 PHP?
- php - 无法从数据库 PDO PHP 编辑图像
- java - Spring Boot DTO 在 Controller 处为空