Отключить поток из другого события "MouseLeave" - C#

  1. Всем доброго времени суток. Есть голая форма с label. При наведении мышки на нее MouseEnter Эта label перебирает из массива приветсвия на разных языках. Это вроде работает но как потом выключить этот поток я не могу


textual

Код к задаче: «Отключить поток из другого события "MouseLeave" - C#»

public partial class Form1: Form
{
    ....
    тело класса вашей формы
    ....
    private Hello _hello;
    
    private void label1_MouseEnter(object sender, EventArgs e)
        {
            _hello = new Hello();
            Thread thread = new Thread(new ThreadStart(_hello.Run));
            thread.Start();
            while ( thread.IsAlive )
            {
                lb_helloworld.Text = hello.HelloWorld;
                lb_helloworld.Update();
            }
        }
 
        private void lb_helloworld_MouseLeave(object sender, EventArgs e)
        {
            _hello.ToRun = false; //После выполнения последней итерации в потоке он завершиться 
        }
 
}

СДЕЛАЙТЕ РЕПОСТ

10   голосов, оценка 4.200 из 5



Похожие ответы
  1. Здравствуйте. Есть действие, которое при выполнении может зависнуть. Мне нужно переступить его, если оно выполняется дольше 3 минут. Как вариант - поместить действие в отдельный поток и убить его, если время выполнения превышает заданное. Но я не могу понять как это осуществить. Пока время не прошло каждую секунду проверять работает ли еще поток, и если более 3х минут убивать поток? и Как корректно убивать поток из основного?

  1. Добрый вечер! Получил задание с определенным условием, а именно "разделить операции на потоки и синхронизацию потоков выполнять с помощью базовых механизмов платформы (без использования Task Parallel Library и concurrent-коллекций)". Как можно это реализовать? Откопал оператор lock и по нему короткий мануал и пример. Он годится? Опыта программирования на C# нет, только Java и С++, но человеку надо сделать на C#.

  1. Нужно запустить метод ScreenUpdate(Pet)

  1. Есть поток,который каждые 100мс должен получать ключ и другие данные от LongPoll сервера. Но проблема в том,что при запуске потока зависает вся программа. Код:

  1. Смотрите у меня будет класс в нем 2 действующих метода (ну и еще второстепенные), первый Exe этот метод что то выполняет (внутри цикл), а второй AddStream, он создает объект Task добавляет в него в качестве Action метод Exe и запускает его, выглядит это как то так:

  1. Имеется статический класс с набором функций, принимающих параметры и возвращающих значения. Обращение к ним идёт как из основного потока так и из дополнительных. Вопрос как обезопасить вызовы этих функций? Нужно тело каждой функции засунуть в lock {} ?

  1. В ресурсах находится ZIP архив (в нем xml), пытаюсь извлечь его в поток что бы загрузить xml.LoadXml(String);

  1. Здравствуйте. Возникает вот такая ошибка на 13 строке : Кликните здесь для просмотра всего текста

  1. Правильно ли я понимаю что делегат будет вызван в том потоке в котором я его создал, а не в том в котором я его вызываю? У меня проблем с передачей данных между потоками с использованием делегатов. Мне нужно вызвать метод из созданного мною потока "DirtyJob" в основном потоке. Пытался это реализовать используя делегаты. В чем ошибка? Помогите исправить Logo.cs: