【问题标题】:vapor main thread not work蒸汽主线程不起作用
【发布时间】:2018-01-30 08:27:09
【问题描述】:

使用Alamofire上传vapor中的文件,但是Alamofire没有返回结果。调试后发现GCD的DispatchQueue.main.async方法没有执行。

重新出现

使用 main.swift

let drop = try Droplet()
try drop.setup()
DispatchQueue.main.async {
    print("---main thead---")
}
try drop.run()

GCD中的代码永远不会被执行。谁知道这是什么原因。

【问题讨论】:

  • 请分享您的 Droplet 类的代码,以便我们查看设置函数在做什么
  • Droplet 是框架的蒸汽类。
  • 这意味着你的 drop = try Droplet() 也没有被调用.. 在那里放一个断点并验证
  • @AbdulWaheed 我的意思是 DispatchQueue.main.async 方法没有实现。
  • 我知道.. 这部分可能永远不会被编译器执行,那就是我告诉你在那里添加一个断点,并检查断点是否被触发

标签: swift main vapor


【解决方案1】:

drop.run() 阻塞主线程。您需要在不同的线程上执行您的工作。

【讨论】:

  • 我不能用Alamofire上传文件?我尝试使用drop.client,但出现错误。你有更好的主意吗?
  • 如果您从后台线程调用 Alamofire,它应该可以工作。见docs.vapor.codes/2.0/core/overview/#background。如果没有,那么这是一个全新的问题 - 你应该单独提出这个问题,并可能用 Alamofire 标记它。
猜你喜欢
  • 1970-01-01
  • 2020-10-17
  • 2020-05-15
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
相关资源
最近更新 更多