gpt4 book ai didi

c# - 处理 WaitForExit 并异步获取返回值

转载 作者:行者123 更新时间:2023-11-30 20:49:47 25 4
gpt4 key购买 nike

我有一个启动进程、等待退出然后返回退出代码的函数:

function int login(string pathtofile)
{
//...
Process process = new Process();
process.StartInfo.FileName = pathtofile;
process.Start();
process.WaitForExit();
return process.ExitCode;
}

这很好用。但是因为它在等待退出,所以它会阻塞窗口窗体(我有一个字幕进度条,它一直在移动,现在明显停止了)。我不知道如何异步返回退出代码,也找不到我理解的任何可能的解决方案。

最佳答案

您可以使用此代码:

void Login(string pathtofile)
{
Process process = new Process();
process.StartInfo.FileName = pathtofile;
process.EnableRaisingEvents = true;
process.Exited += new EventHandler(process_Exited);
process.Start();
}

void process_Exited(object sender, EventArgs e)
{
Process p = (Process)sender;
int exitCode = p.ExitCode;
}

但注意Login函数在启动进程后会直接退出,所以不能返回整数值。您在函数 process_exited

中获得退出代码

关于c# - 处理 WaitForExit 并异步获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com