![](/img/trans.png)
[英]How do I await a future inside a non-async method which was called from an async method within the context of a Tokio runtime?
[英]How do I write an async method with Tokio?
我正在尝试编写一个可以连接到远程服务器并交换数据的库。 我在 C++ 中使用 Boost::Asio 执行此操作,并尝试对 Rust 执行相同操作。
我遇到的问题之一是从 Asio 映射概念,例如 async_write/read 到 Tokio,首先是似乎所有 Tokio 示例都要求我用async main()
替换我的main()
() ,而我想封装所有我在结构和相关实现中的异步代码。
是否可以在不替换main()
的情况下使用 Tokio ? mio
可能是唯一的方法吗?
您可以使用Runtime::new()手动创建运行时,这是 tokio 主宏在后台执行的操作。 它仅适用于大量应用程序,尤其是样板示例。 所以宏自动化了简单的情况。
但是,根据您的库的上下文,提供基于未来的 API 可能更惯用,然后让应用程序使用者设置运行时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.