0 / 0 / 1
Регистрация: 09.02.2016
Сообщений: 13
1

Создал поток не могу закрыть

01.10.2017, 19:04. Показов 1040. Ответов 2
Метки нет (Все метки)

Как завершить поток, если он создан в другом методе?

C#
1
2
3
4
5
6
7
8
9
10
        private void timer1_Tick(object sender, EventArgs e)
        {
            Thread _thread_tab = new Thread(TabRefresh);
            _thread_tab.Start();
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            _thread_tab.Abort();
        }
Вот кусок кода, хочу при закрытии формы завершить поток, но _thread_tab не видится компилятором.
Сообщает The name '_thread_tab' does not exist in the current context

Как объявить поток при создании, чтобы был доступен из любого метода текущего (или другого) класса?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2017, 19:04
Ответы с готовыми решениями:

Создал поток. В нем выделил буффер. Поток выполнился, но из за буфера ругнулся.
В функции треда создал буфер char tbuf;но после того как тред выполнился выскочила ошибка...

Создал TEdit динамически, не могу в него ничего писать в программе, даже выделить не могу
Создал TEdit динамически, не могу в него ничего писать в программе, даже выделить не могу ...

Создал поток в классе (visual studio 2015). Возникли ошибки. Как исправить?
На нижеуказанных скринах описаны ошибки. Помогите пожалуйста их исправить. Потому что взял эти...

Необходимо закрыть поток (как?)
Создаю файл, после желаю записать в него инфу. Мне пишет, что файл уже открыт, что собственно...

2
908 / 812 / 332
Регистрация: 03.02.2015
Сообщений: 5,230
Записей в блоге: 9
01.10.2017, 21:20 2
C#
1
2
3
4
5
6
7
8
9
10
11
        Thread _thread_tab = new Thread(TabRefresh);
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            _thread_tab.Start();
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            _thread_tab.Abort();
        }
0
0 / 0 / 1
Регистрация: 09.02.2016
Сообщений: 13
02.10.2017, 19:08  [ТС] 3
Пробовал, вот что сообщает по методу, что в () потока
A field initializer cannot reference the non-static field, method, or property 'бла-бла-бла

Все методы находятся в классе формы public partial class Form1

Добавлено через 19 часов 51 минуту
Вообщем разобрался как сделать.
В TabRefresh() у меня теперь бесконечный цикл, вместо таймера с интервалом. После закрытия основной формы, поток как и полагается отключается.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        Thread _thread;
 
        public Form1()
        {
            InitializeComponent();
 
            ReadConfigFile();
            LoadGrids();
            _thread = new Thread(TabRefresh);
            _thread.Start();
            ....
        }
 
        public void TabRefresh()
        {
        ....
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            _thread.Abort();
        }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2017, 19:08
Помогаю со студенческими работами здесь

Как правильно закрыть поток
Доброго времени суток. Не могу закрыть поток в методе. private static int intScaner() { ...

Закрыть поток через ArrayList
Всем привет, есть ArrayList в котором лежат объекты потоков. Пробегаясь по циклу, мне нужно закрыть...

Как закрыть поток OpenFileDialog?
Вот мой код using (OpenFileDialog dialog = new OpenFileDialog())// создание нового...

Где в следующем коде закрыть поток
Имеется метод который загружает зашифрованный xaml файл с диска, расшифровывает и отдает результат...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru