gpt4 book ai didi

C# - 从 button_click 终止线程进程

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

我正在尝试使用按钮单击事件来终止 notepad.exe。

因为process.WaitForExit()需要在一个线程中;

现在,点击按钮根本没有任何作用,不知道为什么。

在此先感谢您的帮助:)

这是我当前的代码:

using System.Windows;
using System.Threading;
using System.Diagnostics;


namespace WpfApp5
{
public partial class MainWindow : Window
{
Thread mythread = new Thread(() =>
{
Process process = new Process();
process.StartInfo.FileName = @"notepad.exe";
process.Start();
process.WaitForExit();
});

public MainWindow()
{
InitializeComponent();
mythread.Start();
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
mythread.Abort();
}
}
}

最佳答案

  1. 你不需要线程。您已经启动了一个单独的进程,它有自己的一组线程。
  2. 您需要做的就是卡在 process 上(例如,作为成员变量)并终止它。

例如:

public partial class MainWindow : Window
{
private Process _process = null;

public MainWindow()
{
InitializeComponent();
_process = new Process();
_process.StartInfo.FileName = @"notepad.exe";
_process.Start();
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (_process == null) return;
_process.Kill();
_process = null;
}
}

关于C# - 从 button_click 终止线程进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284200/

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