Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
7 / 7 / 2
Регистрация: 21.08.2012
Сообщений: 62
1

Как остановить поток при закрытии программы

22.09.2012, 10:32. Показов 3933. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private void Form1_Load(object sender, EventArgs e)
        {
            Thread t = new Thread(WriteY);
            t.Start();            // Выполнить WriteY в новом потоке
           
            
        }
 
        public void WriteY()
        {
              //тело
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // вот здесь нужен код останавливающий поток
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2012, 10:32
Ответы с готовыми решениями:

Остановить отдельный поток при закрытии программы
Здравствуйте! Я создал отдельный поток для функции public Form1() { ...

Почему при Thread.Abort закрывается программа? Как остановить поток?
Есть класс для инвертирования движения мыши. При вызове метода Stop программа продолжает работать....

Как браузер остановить при закрытии формы с браузером?
При выходе из окна или переход из закладки к закладки необходимо мне остановить браузер. Т.е....

Как при закрытии приложения проверить уничтожен ли поток
В процессе работы приложения воздействуя на Button1 я уничтожаю поток, тогда при закрытии...

5
15 / 6 / 0
Регистрация: 22.09.2012
Сообщений: 83
22.09.2012, 10:33 2
Thread t определить глобально?
0
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
22.09.2012, 10:53 3
Цитата Сообщение от Интерн Посмотреть сообщение
// вот здесь нужен код останавливающий поток
Не нужно, достаточно в месте создания потока написать:
C#
1
t.IsBackground = true;
Тогда поток убьется, когда закроется приложение.
3
7 / 7 / 2
Регистрация: 21.08.2012
Сообщений: 62
22.09.2012, 13:30  [ТС] 4
Blood-Angel, Работает. Спасибо!
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
22.09.2012, 21:29 5
Если вы по коридору
Мчитесь на велосипеде,
А на встречу вам из ванной
Вышел папа погулять,
Не сворачивайте в кухню,
В кухне твердый холодильник.
Тормозите лучше в папу.
Папа мягкий. Он простит.
Чтобы не тормозить в папу, нужно всего лишь сделать самый простейший механизм уведомления потока о закрытии приложения, чтобы у него была возможность нормально завершить свою работу.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        bool closing;
        Thread t;
        private void Form1_Load(object sender, EventArgs e)
        {
            t = new Thread(WriteY);
            t.Start();            // Выполнить WriteY в новом потоке
           
            
        }
 
        public void WriteY()
        {
              while (!closing)
              {
                 //тело
              }
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
             closing = true;
            t.Join();
        }
2
Psilon
23.09.2012, 00:09     Как остановить поток при закрытии программы
  #6

Не по теме:

kolorotur, всегда любил остера :) Только вечно путал его с островским :D

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2012, 00:09

Как мне сделать так, чтобы данный текстовый файл был открыт один раз при запуске программы и закрыт при закрытии программы?
Привет! Возник следующий вопрос. Программа состоит из основного окна Form1 и нескольких Unit. По...

Остановить видео при закрытии модального окна
При клике на картинку появляется модальное окно. В нём видео. Если запустить видео и закрыть окно -...

Остановить видео из ютуб при закрытии модального окна
Как остановить или поставить на паузу видео, если модальное окно закрывается? (там есть не только...

Убить поток при закрытии формы
Thread myThread; void func() { myThread = new Thread(delegate() { //... Выполняется поток }...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru