![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Перерыл все интернеты, ничего хорошего не нашёл.
Нужно выполнять функцию каждые n секунд. При этом рабочий поток должен работать и функция должна выполняться в рабочем потоке. Если использовать PyQt4, то можно сделать так
В стандартной библиотеке python есть класс treading.Timer, но эта штука срабатывает только один раз. Я попробовал вызывать Timer.run из обработчика, так у меня через 3 минуты 31 секунду таймер сдох с вываливанием эксцепшена (что-то о максимальной глубине чего-то там). Вопрос, есть ли человеческий тамер в python? Это сообщение отредактировал(а) Cheloveck - 5.12.2010, 17:27 -------------------- ![]() |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 9 Всего: 70 |
||||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Я его пробовал, он поток вешает (останавливает) -------------------- ![]() |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: нет Всего: 39 |
signal.alarm() ?
|
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Неа.
http://docs.python.org/library/signal.html#signal.alarm Мне может понадобится несколько таймеров. Это сообщение отредактировал(а) Cheloveck - 5.12.2010, 22:31 -------------------- ![]() |
|||
|
||||
| senkler |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.10.2010 Репутация: нет Всего: нет |
Привет, нашел такой пример в сети . Надеюсь тебе поможет !
|
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Добавлено через 1 минуту и 46 секунд Я, конечно, понимаю, что можно устроить свою очередь сообщений и читать её из рабочего потока, в то время, когда таймер будет работать у себя. Но, неужели нет в python простого таймера, типа виндового SetTimer/KillTimer? -------------------- ![]() |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
кажется немного не понял идею: т.е. рабочий поток надо приостановить, выполнить функцию, и продолжить. или я недопонял ? если я правильно понял, то создай вне рабочего потока поток с таймерами, который будет посылать сигнал/ы а рабочий поток будет обрабатывать это сигнал/ы. ессно, надо будет как-то аккуратно проработать момент, что ты обрабатываешь сигнал одного таймера, и в это время к тебе стучится второй.. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Ну, мне нужны какие-то сообщения, сигнал итп.
Я специально проверял, в венде SetTimer не создаёт поток. Таймер работает где-то в ядре. Как создать таймер в отдельном потоке я знаю. Но странно, что его нет в стандартной библиотеке. -------------------- ![]() |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
что-то там создается, но меня другой вопрос интересует: какая тебе на фих разница: создается поток или нет ? проясни требования ..... -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
принципиальная =) Обсервер. Объект рассылает уведомления подписчикам, в том числе и о таймауте. -------------------- ![]() |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |