如何安全退出线程

本文关键字:退出 线程 安全 何安全 | 更新日期: 2023-09-27 18:37:02

我不得不使用线程(第一次),并注意到当我使用 ALT + F4 关闭表单时,线程继续运行。这绝对不是预期的结果,因为我需要这个线程在退出时停止运行。我目前有:

    public void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs E)
    {
        Continue = false;
    }

    Boolean Continue = true;
    int MouseX = Cursor.Position.X;
    int MouseY = Cursor.Position.Y;
    Point MousePosition;
    public static void LockMouse()
    {
        Form1 Form = new Form1();
        while (Form.Continue)
        {
            Form.MousePosition.X = 0;
            Form.MousePosition.Y = 0;
            Cursor.Position = Form.MousePosition;
        }

    }

这是线程由以下人员创建的:

    public void CreteThread()
    {
        Thread Worker = new Thread(LockMouse);
        Worker.Start();
    }

我注意到当 ALT + F4 时线程保持打开状态,它正在进入一个完全的鼠标锁定,这不是故意的!表单似乎没有到达关闭功能?

我想指出的是,因为一些用户可能会认为这可能是恶意代码和反对票,或者出于错误的原因请求关闭。此应用程序正在创建中,供我自己使用,不会分发

如何安全退出线程

将您的

线程声明为背景线程,当所有其他线程结束时,它将被销毁:IsBackground。

无论如何。。。与您的第一个问题无关...不要使用 while 循环来获取坐标...使用事件处理程序鼠标移动,这将提高性能,并且您可以摆脱线程。