![](/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.