gpt4 book ai didi

c# - WPF。未从另一个应用程序(服务)关闭 wpf 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:02 25 4
gpt4 key购买 nike

我有 wpf 和控制台应用程序。我想从另一个应用程序正确关闭 wpf 应用程序。

代码关闭应用:

public static async Task CloseProcessAsync(string processName) {
await Task.Run(() => {
try {
foreach (var process in Process.GetProcessesByName(processName)) {
process.Close();
}
} catch (Exception e) {
Logger.Error($"Utils.utils.FileUtils.{MethodBase.GetCurrentMethod().Name}: {e.Message}");
}
});
}

Сlosure处理代码:

    private void MainWindow_OnClosed(object sender, EventArgs e) { 
Logger.Debug(MethodBase.GetCurrentMethod().Name);
}

private void MainWindow_OnClosing(object sender, CancelEventArgs e) {
Logger.Debug(MethodBase.GetCurrentMethod().Name);
}

问题是 Close()\Dispose()\CloseMainWindow() 方法在 wpf 应用程序上不起作用。日志为空

我尝试按照说明解决问题 here .但就我而言,即使打开 WPF 应用程序的 GUI,CloseMainWindow() 方法也不起作用。

据我了解,我需要一个特殊的方法来处理 wpf 应用程序中的关闭请求,而不是仅仅重写 MainWindow_OnClosing() 或 MainWindow_OnClosed() 方法。

我觉得解决方案应该很简单,不用第三方库。

最佳答案

var proc = Process.GetProcessesByName("WPFProcName").First();
proc.CloseMainWindow();

是否正在调用作业以及 App.ExitWindow.Closed
检查是否找到了进程(您使用了正确的名称)。您也可以尝试以管理员权限启动控制台。

关于c# - WPF。未从另一个应用程序(服务)关闭 wpf 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55021018/

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