![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| NilovSerge |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Всем привет!
Есть mdi-форма со всяким содержимым и часиками(timer c Interval = 1000) в нижнем углу. Если процесс в одной из дочерних форм доcтаточно длителен, то часики останавливаются пока процесс не выполнится полностью. Хочется что часики работали не переставая... пытаюсь делать отделным процессом :
Часики работают но та же проблема : если процесс в одной из дочерних форм доcтаточно длителен, то часики останавливаются, пока процесс не выполнится полностью... Можно это побороть и как ? Заранее спасибо |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
в доп. поток вообще-то принято выносить длительную и тяжёлую работу, а не обновление UI
часики останавливаются из-за того, что System.Windows.Forms.Timer работает через windows-сообщения, а твой главный поток слишком занят работой, чтобы на них реагировать замени его на System.Timers.Timer (Invoke не забудь), а саму работу в отдельный поток - и будет тебе счастье ;) |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 6 Всего: 62 |
Вместо него рекомендуется использовать System.Threading.Timer. |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
Idsa, а почему?
|
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 6 Всего: 62 |
Позволю себе процитировать Рихтера:
От себя добавлю, что в System.Timers.Timer нельзя задать dueTime и передать в метод пользовательский объект (state). |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
отлично, буду знать!
спасибо |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |