如何解决东京参加锈病的多个任务
在我看来,更有可能是语法问题,而不是其他问题。 想象一下,存储在长度由运行时确定的“ vec”中的某些期货,您应该同时加入这些期货,该怎么办?
显然,以tokio :: join文档中的示例为例,手动指定vec的每个长度,例如1、2、3,...,并应处理适当的情况。
extern crate tokio;
let v = Vec::new();
v.push(future_1);
...
// directly or indirectly you push many futures to the vector
...
v.push(future_N);
// to join these futures concurrently one possible way is
if v.len() == 0 {}
if v.len() == 1 { join!(v.pop()); }
if v.len() == 2 { join!(v.pop(),v.pop() ); }
...
我还注意到tokio :: join!当我使用类似
的语法时,将列表作为文档中的参数tokio::join!(v);
或类似的
tokio::join![ v ] / tokio::join![ v[..] ] / tokio::join![ v[..][..] ]
那是行不通的
这里出现的问题是,是否有任何途径可以更有效地加入这些期货,还是我应该错过文件所说的东西?
解决方法
您可以使用futures::future::join_all
将您的期货集合“合并”到一个期货中,当所有子期货都解决时,期货就解决。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。