You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Tauri协议处理器中调用async函数的推荐方法是什么?

在Tauri协议处理器中调用异步函数的方案

Tauri 1.x的临时实现方式

你通过futures::executor::block_on在协议处理器中调用异步函数的写法确实能生效,但这种方式并不推荐——block_on会阻塞当前线程,在Tokio runtime环境下可能引发死锁风险,破坏异步调度的合理性。

你的简化实现代码如下:

#[tokio::main]
async fn main() {
    tauri::Builder::default()
        .register_uri_scheme_protocol("myprot", move |_app, req| {
            let handle = tokio::runtime::Handle::current();
            let _guard = handle.enter();

            futures::executor::block_on(async move { handle_protocol_myprot(&req).await })
        })
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

官方推荐的异步方案(Tauri 2.0)

Tauri 2.0(测试版)新增了register_asynchronous_uri_scheme_protocol方法,专门支持在协议处理器内部直接进行异步调用,无需手动阻塞线程,这是官方针对异步协议场景提供的标准解决方案。


内容的提问来源于stack exchange,提问作者happybeing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:02:32