1. 直接 kill 整个 coroutine 就行了。包括超时也是如此:
workers.spawnWithName("load_data", [this] {
auto r = http.get(url);
update(model<Profile>(r.json());
}
on_cancel_button_clicked:
workers.kill("load_data");
qtng::Timeout timeout(10);
try {
auto r = http.get(url);
...
} catch (qtng::TimeoutException &e) {
// timeout
}
2.3. 这个目前确实还没有实现。我设计了一个 FileLike 类型用于模拟大文件,等我有空就加进去。
【 在 hanjiamajia (hanjiamajia) 的大作中提到: 】
: 简单看了下你的 Http Client ,我想讨论下我看到的几个问题(不讨论协程部分):
: 1. HttpSession 没有找到 Cancel 机制
: 这个在 UI 开发中很重要,比如 Dialog 关闭,需要 Cancel 掉当前页面发出的所有 Http 请求
: ...................
--
修改:hgoldfish FROM 112.47.122.*
FROM 112.47.122.*