Re[5]: Как приостановить выполнение другой программы (pause)
От: Shark_raph Беларусь shark-raph.by.ru
Дата: 13.02.04 12:05
Оценка:
Здравствуйте, SergeMukhin, Вы писали:

SM>Здравствуйте, vadim77, Вы писали:



SM>>>но на все thread процесса


V>>SuspendThread конечно подвесит, но что произойдет, если логика приложения не рассчитана на такое? Т.е. я хочу сказать, что если в приложении несколько завязанных друг на друга потоков то вызывая SuspendThread в цикле можно попасть в ситуацию, что один уже висит, а тот который с ним работает еще нет и поведение программы будет непредсказуемым.


SM>обязательно! но верояность чрезвычайно мала, т.к. когда один tread работает, другой все равно уже стоит (за искл многопроцессорных систем), т.е. создать такую ситуацию очеь сложно, опять же и thread который всех останавливает тоже работает (а другие стоят ждут очереди).

SM>чтобы минимзировать вероятность этого, можно дать повышенный приоритет на врему suspend'ов.

Ситуация еще более усложнилась,
Поковырявшись, понял что пауза потока не пройдет, т.к. надо чтобы порт отвечал периодически на запросы агента. Иначе всё упадет по TimeOut.
Вот задачка...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.