| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > C# функция работающая в отдельном потоке |
| Автор: Rockie 1.9.2007, 00:02 | ||
| Здравствуйте! 1) У меня есть форма Form1, на ней label1. есть функция, которая прорисовывает на label текущее время. Хочу запустить ее в отдельном потоке. Чтобы один поток опрашивал системный таймер и прорисовывал время на label, а основной чтобы реагировал на действия пользователя(слушал щелчки мышью и т.п.). Вот http://forum.vingrad.ru/forum/topic-51708/anchor-entry1184491/0.html вроде хороший пример, но у меня он не работает как написано(все цифры по порядку), и там как понял создаются два потока, а мне нужен только один - "побочный", для таймера.. Вот пример кода:
2) Можно ли регулировать приоритеты потоков? То есть чтобы одному отводилось меньшее процессорное время, а другому - большее? 3) Где доступно на русском описана работа с потоками в .NET 2.0, если можно ссылки? |
| Автор: QryStaL 1.9.2007, 01:02 | ||
1) Кидаешь на форму компонент таймер, ставишь ему интервал 1000. Добавляешь обработчик события Tick.
2) Свойство Thread.Priority. 3) Основы - Троелсен, Рихтер. Более подробно и углубленно - на английском (есть целые книги, посвященные этой теме, в том числе и МСДН). |
| Автор: Rockie 1.9.2007, 03:16 |
| QryStaL, понятно, спасибо. Однако в данном случае интересует именно многопоточный вариант. Запуск любой функции в потоке, не обязательно таймер. |
| Автор: anonym 1.9.2007, 09:10 | ||
Пример работы с классом Thread
|
| Автор: tol05 2.9.2007, 14:40 |
| добавлю ко всему выше сказанному Rockie, пример anonym - классический. Юзай. Только в версии 2.0 появилась возможность кроме делегата ThreadStart юзать еще ParameterizedThreadStart, чему нельзя не радоваться. Можно передавать параметры в поток (создавая массив object[] и упаковывая в него сколько угодно много параметров)... Кроме того, есть еще пул потоков ThreadPool, для WinForms - компонент BackgroundWorker. Для выполнения асинхронных операций также есть целая модель АРМ (тут, как сказал QryStaL, действительно лучше всего - Рихтера читать). А попростому - если видишь метод, начинающийся с BeginXXXXXX или EndXXXXXX - то это как раз APM. ну а для начала можно почитать : http://rsdn.ru/ (статья "Работа с потоками в C#") http://www.intuit.ru/department/pl/cil/15/ |
| Автор: Rockie 2.9.2007, 17:44 |
| Понял, буду разбираться! |