Здравствуйте, Alex777, Вы писали:
A>Как в VC++ 6.0 вырубать функцию если она не получила значение по истечению определенного времени спасибо
Насколько мне известно, "вырубают" (т.е. прерывают) не функции, а потоки, и не в VC, а в Windows. Например, TerminateThread. Или я што-то не так понял?
Здравствуйте, Дмитрий Наумов, Вы писали:
A>>Как в VC++ 6.0 вырубать функцию если она не получила значение по истечению определенного времени спасибо ДН>Сильный вопрос... Я, лично, ничего не понял, что ты хотел этим спросить.
Функция выполняет какие -то действия и зациклилась надо вырубить
Здравствуйте, KonstBez, Вы писали:
A>>Как в VC++ 6.0 вырубать функцию если она не получила значение по истечению определенного времени спасибо KB>Насколько мне известно, "вырубают" (т.е. прерывают) не функции, а потоки, и не в VC, а в Windows. Например, TerminateThread. Или я што-то не так понял?
Работает функция зациклилась надо вырубить и продолжать работать
Здравствуйте, Alex777, Вы писали:
A>Здравствуйте, Дмитрий Наумов, Вы писали:
ДН>>Здравствуйте, Alex777, Вы писали:
A>>>Как в VC++ 6.0 вырубать функцию если она не получила значение по истечению определенного времени спасибо
ДН>>Сильный вопрос... Я, лично, ничего не понял, что ты хотел этим спросить.
A>Функция выполняет какие -то действия и зациклилась надо вырубить
а. Не делать такую функцию — передизайнить!
б. Ввести внешний флаг и в этой зацикленной функции его проверять
Здравствуйте, Corvin, Вы писали:
A>>Работает функция зациклилась надо вырубить и продолжать работать C>Хорошо спросил... C>... А вообще просто так вырубать повисшие функции нельзя, надо смотреть на код в каждом конкретном случае
Хорошо не корректно задал вопрос. В свою программу подключаю DLL. Беру оттуда функции
они могут вернуть число, а могут войти в бесконечный цикл. Доступа к той DLL у меня нет.
Здравствуйте, Дмитрий Наумов, Вы писали:
A>>>>Как в VC++ 6.0 вырубать функцию если она не получила значение по истечению определенного времени спасибо ДН>>>Сильный вопрос... Я, лично, ничего не понял, что ты хотел этим спросить.
Есть DlL, Беру функции,может нормально отработать, а может повиснуть.
A>Хорошо не корректно задал вопрос. В свою программу подключаю DLL. Беру оттуда функции A>они могут вернуть число, а могут войти в бесконечный цикл. Доступа к той DLL у меня нет.
Первое, что приходит в голову, это вызывать функцию. в отдельной нити и если нить не вышла через заданный промежуток времени прибивать ее через terminatethread... Больше пока ничего в голову не приходит.. Хотя если хорошо знать ассемблер.......
Здравствуйте, Alex777, Вы писали:
A>Хорошо не корректно задал вопрос. В свою программу подключаю DLL. Беру оттуда функции A>они могут вернуть число, а могут войти в бесконечный цикл. Доступа к той DLL у меня нет.
Тогда остается создавать поток, в котором делать вызов ф-ции и, если он не завершается сам, то завершать его с помощью TerminateThread.
Здравствуйте, Alex777, Вы писали:
A>Хорошо не корректно задал вопрос. В свою программу подключаю DLL. Беру оттуда функции A>они могут вернуть число, а могут войти в бесконечный цикл. Доступа к той DLL у меня нет.
Могу посоветовать только одно: обращаться к DLL из отдельного потока и при необходимости рубить его. Например, варварским TerminateThread. Правда, ничего более корректного для такого случая я не знаю.
Здравствуйте, Corvin, Вы писали:
A>>Хорошо не корректно задал вопрос. В свою программу подключаю DLL. Беру оттуда функции A>>они могут вернуть число, а могут войти в бесконечный цикл. Доступа к той DLL у меня нет. C>Первое, что приходит в голову, это вызывать функцию. в отдельной нити и если нить не вышла через заданный промежуток времени прибивать ее через terminatethread... Больше пока ничего в голову не приходит.. Хотя если хорошо знать ассемблер.......
Не надо ассемблер дай пример как с таймером работать
Здравствуйте, Михаил Можаев, Вы писали:
ММ>Тогда остается создавать поток, в котором делать вызов ф-ции и, если он не завершается сам, то завершать его с помощью TerminateThread.
Как узнать она завершилась или просто тормозит дай примерчик если есть
Здравствуйте, KonstBez, Вы писали:
KB>Могу посоветовать только одно: обращаться к DLL из отдельного потока и при необходимости рубить его. Например, варварским TerminateThread. Правда, ничего более корректного для такого случая я не знаю.
Здравствуйте, Михаил Можаев, Вы писали:
ММ>Тогда остается создавать поток, в котором делать вызов ф-ции и, если он не завершается сам, то завершать его с помощью TerminateThread.