| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Часики на мди-форме отдельным потоком |
| Автор: NilovSerge 20.7.2008, 22:04 | ||
| Всем привет! Есть mdi-форма со всяким содержимым и часиками(timer c Interval = 1000) в нижнем углу. Если процесс в одной из дочерних форм доcтаточно длителен, то часики останавливаются пока процесс не выполнится полностью. Хочется что часики работали не переставая... пытаюсь делать отделным процессом :
Часики работают но та же проблема : если процесс в одной из дочерних форм доcтаточно длителен, то часики останавливаются, пока процесс не выполнится полностью... Можно это побороть и как ? Заранее спасибо |
| Автор: mihryak 20.7.2008, 23:05 |
| в доп. поток вообще-то принято выносить длительную и тяжёлую работу, а не обновление UI часики останавливаются из-за того, что System.Windows.Forms.Timer работает через windows-сообщения, а твой главный поток слишком занят работой, чтобы на них реагировать замени его на System.Timers.Timer (Invoke не забудь), а саму работу в отдельный поток - и будет тебе счастье ;) |
| Автор: Idsa 21.7.2008, 05:16 |
Вместо него рекомендуется использовать System.Threading.Timer. |
| Автор: mihryak 21.7.2008, 09:07 |
| Idsa, а почему? |
| Автор: Idsa 21.7.2008, 12:32 | ||
Позволю себе процитировать Рихтера:
От себя добавлю, что в System.Timers.Timer нельзя задать dueTime и передать в метод пользовательский объект (state). |
| Автор: mihryak 21.7.2008, 15:15 |
| отлично, буду знать! спасибо |