用按钮结账获胜';t结束任务C#

本文关键字:结束 任务 按钮 获胜 | 更新日期: 2023-09-27 18:26:14

因此,出于某种原因,当我将this.Close();编码到程序中时,它实际上不会关闭它。我让程序打开一个不同的.exe文件,然后关闭,但我打开了我的任务管理器,它实际上仍然在后台运行。我的上下文菜单上的"关闭"选项也有这个问题。有什么想法吗?

编辑:即使我按下按钮退出,它仍然在后台。

编辑:

private void closeToolStripMenuItem_Click(object sender, EventArgs e)
{
    this.Close();
}
private void launch_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process.Start(Environment.ExpandEnvironmentVariables("%AppData%''program.exe"));
    this.Close();
}

只有实际的两个代码正在关闭程序。但它仍在后台运行。即使我通过实际的x按钮退出,它仍然在后台运行。

用按钮结账获胜';t结束任务C#

您必须关闭已创建的进程。创建一个变量以保存已创建的流程,当您关闭表单或按下另一个按钮关闭流程时。请参阅:http://msdn.microsoft.com/en-us/library/system.diagnostics.process.close.aspx

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        private Process _process;
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            this._process = Process.Start("notepad.exe");
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (this._process != null) {
                this._process.CloseMainWindow();
                this._process.Close();
            }
        }
    }
}

如以上注释中所述,使用System.Diagnostics添加;到您的代码并尝试此代码

public Form1()
{
    InitializeComponent();
    Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
}
void Application_ApplicationExit(object sender, EventArgs e)
{
    Process.GetCurrentProcess().Kill();
}