rust - 如何使用 Tokio 编写异步方法?
问题描述
我正在尝试编写一个连接到远程服务器并交换数据的库。我在 C++ 中使用 Boost::Asio 做到了这一点,并试图用 Rust 做同样的事情。
我遇到的问题之一是从 Asio 映射概念,例如 async_write/read 到 Tokio,首先是看似所有 Tokio 示例都要求我用 替换 my main()
,async main()
而我想将所有异步代码封装在结构中并关联实施。
是否可以在不更换的情况下使用 Tokio main()
?也许是mio
唯一的方法?
解决方案
您可以使用Runtime::new()手动创建运行时,这是 tokio 主宏在后台执行的操作。它仅适用于大量应用程序,尤其是样板示例。所以宏自动化了简单的情况。
但是,根据您的库的上下文,提供基于未来的 API 可能更符合习惯,然后让应用程序使用者设置运行时。
推荐阅读
- python - # 5次,每个句子用一个空格隔开
- python - 在 try 语句中输入空白值
- java - 有没有办法在java(Android sdk)中将带有hypen的字符串转换为整数
- java - 我可以仅对 wro4j 中的 TS 文件启用打字稿处理吗?
- javascript - 如何通过图标验证更改复选框
- javascript - 获取解析错误:意外的令牌,预期的“,”在 Vue
- php - WordPress Rest API 响应计数
- ionic-framework - Ionic 和 phonegap 条码扫描仪应用程序在 android 上崩溃
- asp.net - aspx dropdownList 不维护所选值
- javascript - 在 Javascript 中显示基于数字范围的图像