< 返回版块

WingDust 发表于 2021-06-16 23:48

Tags:多线程

我有两个事件 一个是监听键盘事件

#[allow(dead_code)]
#[allow(unused_variables)]
fn capturescreen() {
    let mut hk = hotkey::Listener::new();
    hk.register_hotkey(0x0000, 0x78 as u32, || { 
        println!("f9");
        std::process::exit(0x0100);})
        .unwrap();
    hk.listen();
}

一个是调用 ffmpeg

#[allow(dead_code)]
fn ffmpeg(err:fn()) {
    let o = Command::new("ffmpeg")
        .arg("-f")
        .arg("gdigrab")
        .arg("-i")
        .arg("desktop")
        .arg("-pix_fmt")
        .arg("yuv420p")
        .arg("H:/backupRecord/b.mp4")
        .output()
        .expect("error!");

    if !o.status.success() {
        println!("{:#?}",String::from_utf8(o.stderr));
        err();
    }
}

怎么运行这个两个事件在两个线程中启动不相互阻塞运行

评论区

写评论
星夜的蓝天 2021-06-17 00:31

没看懂问题……你主线程里用两个std::thread::spawn包起来,然后根据你的逻辑继续做其他事还是调用Join等待这两个进程结束不就好了吗

1 共 1 条评论, 1 页