首页 > 解决方案 > 如何使用 Tokio 编写异步方法?

问题描述

我正在尝试编写一个连接到远程服务器并交换数据的库。我在 C++ 中使用 Boost::Asio 做到了这一点,并试图用 Rust 做同样的事情。

我遇到的问题之一是从 Asio 映射概念,例如 async_write/read 到 Tokio,首先是看似所有 Tokio 示例都要求我用 替换 my main()async main()而我想将所有异步代码封装在结构中并关联实施。

是否可以在不更换的情况下使用 Tokio main()?也许是mio唯一的方法?

标签: rustrust-tokiomio

解决方案


您可以使用Runtime::new()手动创建运行时,这是 tokio 主宏在后台执行的操作。它仅适用于大量应用程序,尤其是样板示例。所以宏自动化了简单的情况。

但是,根据您的库的上下文,提供基于未来的 API 可能更符合习惯,然后让应用程序使用者设置运行时。


推荐阅读