![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Kefir |
|
||||||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
Собственно есть таймер, по которому абортится тред. На первом же тике идёт thread.Abort();
Тред - поле класса:
Метод начинающий тред:
И тик таймера:
Собственно всё бы ничего, но проблема в том, что в итоге при выполнении кода таймер тикает очень непонятно - очень рандомно тригерит тик (чисто так как попало, иногда и больше минуты может занять это дело). Однако, если поставить в любое место timer_Tick брейкпойнт, то всё работает так как надо. Брейкпойнт именно с остановкой проги. А что такое то? А то я даже посмотреть не могу в чём дело - брейкпойнты не поставишь, так как сразу начинает нормально работать! |
||||||
|
|||||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
Так, вроде понял закономерность. Дело в том, что таймер то тикает и окно "закрывается" (p.Close();). Однако WPF не прорисовывает то что окна больше нет. Надо подвигать мышой чтобы окно "отрисовалось", а точнее убралось в экрана. Теперь вот думаю, как заставлять его прорисовать.
|
|||
|
||||
| _Jesus |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.1.2008 Репутация: нет Всего: нет |
Может я чего не понял, но мне кажется, что это из-за потока. Нет синхронизации. Поэтому тики идут хаотично. А когда ставишь бряки, то выполнение стопорится и поэтому обработка идёт по-порядку.
|
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
_Jesus, в общем я уже написал в чём проблема. А вообще Join не помог - я его в тик пытался сувать.
|
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
PopupError p сделай членом класса, а в timer_Tick проверяй сначала состояние PopupError и перед прерыванием потока проверяй состояние PopupError и закрывай его.
Через Invoke, как я понял. P.S. Что-то как-то сложно написал Это сообщение отредактировал(а) tol05 - 16.1.2008, 18:15 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
tol05, супер, как-то я не додумался из главного треда закрыть окно
Добавлено через 1 минуту и 31 секунду * Закрываю тему * |
|||
|
||||
| farad |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: -1 Всего: 6 |
я тоже чего-то не понял, использование потоков здесь как собаке пятое колесо. по крайней мере это следует из приведенного кода. По меньшей мере странно запускать отдельный поток, только лишь для того, чтобы в нем открыть модальный диалог, который в отдельном потоке превращается по сути в немодальный...
Это сообщение отредактировал(а) farad - 16.1.2008, 19:42 |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
farad, причины есть. Я же не постю абсолютно весь код дабы люди не отвлекались на мелочи. Вас не касается что в это время происходит в программе. Есть на то причины. И на счёт пятого колеса - это как раз про ваш пост.
|
|||
|
||||
| farad |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: -1 Всего: 6 |
||||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
farad, если можно сделать, то нафиг это нужно? я лично так обычно понимаю -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |