![]() |
|
|
![]()
|
|
| bubnoplyass |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 11.10.2007 Репутация: нет Всего: нет |
Народ подскажите пожалуйста.... вот такая ситуацаия запускается функция которая висит очень дого. Как сделать так чтобы например через 5 мин после заруска этой фукции если она продолжает висеть запускалась другая... но при этом первая должна оставаться не твонутой?.. навидите на мысль...
|
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
почитай про потоки и синхронизацию.
Это сообщение отредактировал(а) Albor - 3.9.2009, 17:08 |
|||
|
||||
| bubnoplyass |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 11.10.2007 Репутация: нет Всего: нет |
а может с таймером можно????
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
в одном потоке ваш таймер не будет работать - если поток висит, то висит всё. Никакой таймер не прервет поток и в нем же вызовет функцию.
Вам нужно создать thread, в создающем создать event, и после запуска thread ждать установки этого event-а функцией WaitForSingleObject, время ожидание для нее задается параметром. В коне работы рабочий поток обязан поставить этот event (сам handle эвента передавайте в функцию потока как параметр например). Далее если за время отведенное функция не успела, то надо думать что делать с зависшим потоком. Плохим (но зачастую одим из единственных) считается замочить thread используя TerminateThread, но опять же это не всегда сработает (например если зависло внутрях ядра).... я когда-то писал очень сложное с т.з. таких вот потоков приложение.. пришел к выводу что нафиг эти потоки и делал отдельными процессами - их хоть и замочить сложнее, зато (в теории) винда гарантирует отчистку ресурсов для терминированного приложения... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| bubnoplyass |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 11.10.2007 Репутация: нет Всего: нет |
Большое спасибо)) вы бли правы, с таймером ничего не получилось(к сожелению он не может прервать зависшую функцию) , а вот с новым потоком всё замечательно работает.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |