Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
mfot
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 8
1

Как запустить поток, который уже отработал

01.07.2014, 14:44. Просмотров 791. Ответов 1
Метки нет (Все метки)

Кто не хочет открывать солюшн, так скажу: решил сделать программу-мультик, т.е нажимая на кнопку происходит смена изображений на ЮсерКонтроле. Я конечно совсем ещё начинающий, но решил строить программу по паттерну MVC. И класс Контроллер у меня отвечает за обработку нажатия на кнопку, вызывая метод из Модели. Причём вызывая под новым потоком. И вот этот метод закончившись (мультик сработал), в Контроллере у меня срабатывает Abort() этого потока (Даже проверил свойством IsAlive, котрый показал фолс). Но при втором нажатии вылетает эксэпшн, что, мол поток выполняется или прерван и его нельзя запустить повторно. Тогда в обработчике клика кнопки сделал так:
C#
1
2
3
4
5
6
7
8
9
try
            {
                t1.Start(); // Запуск нашего потока
            }
            catch
            {
                t1.Abort();
                t1.Start();
            }
Но всё ровно исключение. Может я что-то забыл банальное?
Bonus.rar
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 14:44
Ответы с готовыми решениями:

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

Как запустить новый поток?
мне надо запустить новый поток как обычно в классе родителя пишу:private...

Как запустить поток в консоли?
Просьба не пинать ногами, в структуре программы ориентируюсь еще очень слабо....

Как можно заново запустить поток
Добрый день. Подскажите пожалуйста, как можно повторно запустить поток. ...

Как правильно приостановить поток на неопределенное время а потом запустить
Добрый день. Имеется главный поток и до 100 второстепенных потоков. Задача...

1
kolorotur
Эксперт .NET
10617 / 8798 / 2195
Регистрация: 17.09.2011
Сообщений: 15,073
Завершенные тесты: 1
01.07.2014, 14:52 2
Цитата Сообщение от mfot Посмотреть сообщение
Может я что-то забыл банальное?
Так точно: поток может быть выполнен только один раз.
Если нужно выполнить тот же код снова в отдельном потоке, то:
а). Создавайте новый поток
б). Используйте пул потоков
в). Вместо отключения потока пусть он крутится в бесконечном цикле, ожидая команды на отключение или команды на отображение очередной картинки.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2014, 14:52

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

Как и где создать поток, который работает после окончания проложения?
Как и где создать поток, который работает после окончания проложения, и его не...

Как запустить браузер, который стоит по умолчанию
У меня есть кнопка, как сделать чтоб при нажатие на кнопку запускался браузер...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru