gpt4 book ai didi

c# - 在任务中包装 EAP

转载 作者:行者123 更新时间:2023-11-30 21:34:13 31 4
gpt4 key购买 nike

我试图用以下代码将 EAP 包装在任务中。

public static async Task<string> Caller()
{
var ret = await RunProgram();

return ret;
}

public static async Task<string> RunProgram()
{
TaskCompletionSource<string> source = new TaskCompletionSource<string>();
var process = new Process();
process.StartInfo.UseShellExecute = true;
process.StartInfo.FileName = "cmd";
process.Exited += (sender, args) =>
{
source.SetResult("hello");
};
process.Start();

return await source.Task;
}

但是,Exited Event 永远不会被触发。有人可以指导我这里做错了什么吗?

请注意,上面的代码是一个原型(prototype),'event-not-firing' 场景也发生在真实场景中。

最佳答案

您需要启用进程的事件引发属性

像这样

var process = new Process

{
EnableRaisingEvents = true,
StartInfo = new ProcessStartInfo(processPath)
{
RedirectStandardError = true,
UseShellExecute = false
}
};

关于c# - 在任务中包装 EAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50502108/

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