Мне нужно работать с Threads (первый раз) и заметил, что когда я закрываю форму с помощью ALT + F4, поток продолжает работать. Это, безусловно, не ожидаемые результаты, так как мне нужен этот поток, чтобы остановить работу при выходе. Я в настоящее время:Как выйти из проблем Safely
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, которая входит в полную блокировку мыши, которая не является предназначена! Кажется, что форма не достигает функции закрытия?
Я хотел бы указать, так как некоторые пользователи могут видеть это как возможный вредоносный код & Downvote соответственно или запросить замыкания по неправильной причине. Это приложение создается и для использования мной & Не будет распространено
объявите свою нить как фоновый, и она будет уничтожена, когда все остальные потоки завершатся: [IsBackground] (http://msdn.microsoft.com/en-us/library/system.threading.thread.isbackground (v = vs.110) .aspx) – JPVenson
Я не видел вредоносного кода здесь? – mysticcode
так или иначе ... ничего не связано с вашим первым вопросом ... не используйте цикл while для получения координат ... используйте Eventhandler [MouseMove] (http://msdn.microsoft.com/en-us/library /system.windows.forms.control.mousemove(v=vs.110).aspx), это будет более результативным, и вы избавитесь от своей нити. – JPVenson