当前位置:首页C# > 正文

C#退出线程及重写Winform关闭按钮

作者:野牛程序员:2023-12-11 18:53:27C#阅读 2728

要退出线程,可以使用Thread.Abort方法。但请注意,Thread.Abort可能导致不确定的行为,并可能引发异常。更好的方法是通过设置一个标志,让线程在下一个合适的时机自行退出。

以下是一个简单的示例,展示了如何退出线程:

using System;
using System.Threading;

class Program
{
    private static bool isRunning = true;

    static void Main()
    {
        Thread myThread = new Thread(MyThreadMethod);
        myThread.Start();

        // 等待用户输入或其他条件
        Console.WriteLine("按下任意键退出线程...");
        Console.ReadKey();

        // 设置标志,通知线程退出
        isRunning = false;

        // 等待线程退出
        myThread.Join();

        Console.WriteLine("程序结束");
    }

    static void MyThreadMethod()
    {
        while (isRunning)
        {
            // 执行线程的工作

            // 在循环中检查标志,以判断是否应该退出
        }

        Console.WriteLine("线程退出");
    }
}

至于重写Winform关闭按钮,可以通过重写FormClosing事件来实现。以下是一个示例:

using System;
using System.Windows.Forms;

class MyForm : Form
{
    public MyForm()
    {
        // 添加FormClosing事件处理程序
        this.FormClosing += MyForm_FormClosing;
    }

    private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
    {
        // 阻止默认的关闭操作
        e.Cancel = true;

        // 在这里执行你想要的关闭操作,例如退出线程等
        // ...

        // 最后关闭窗体
        this.Close();
    }
}

class Program
{
    static void Main()
    {
        Application.Run(new MyForm());
    }
}



野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击