| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > как организовать поток |
| Автор: z-END 3.3.2006, 18:00 | ||
| Мне нужен Thread, который бы был запускался вместе с приложением и завершался вместе сним... задача потока висеть в памяти и выполнять задания которые ему перодически отправляет приложение. вот как выглядит код:
|
| Автор: Snowy 3.3.2006, 18:05 |
| Просто добавь ему Sleep в цикл. |
| Автор: Poseidon 3.3.2006, 18:05 |
| А если уменшить приоретет потока? |
| Автор: z-END 3.3.2006, 18:09 |
| Snowy, неужели все так было просто Poseidon, это непомогает.. |
| Автор: Snowy 3.3.2006, 18:11 |
| Иссесно. Для этого Sleep и нужен - замораживать поток на некоторое время. Или хотя бы Sleep(0), чтобы передать очередь дальше. |
| Автор: Демо 3.3.2006, 18:35 |
| Snowy, Ну Sleep все же здесь несколько не тот подход. Хотя и такой способ приемлем. но не всегда. z-END, Глянь на этот топик, думаю, идея будет понятна. http://forum.vingrad.ru/index.php?showtopic=83942 ------------- Схематично опишу здесь: Поток стартует и тут же засыпает(Suspend). Другой поток передает спящему потоку в список задач задание и пробуждает его(Resume) Поточная функция проверяет список задач, находит новую и выполняет. Предыдущий пункт повторяется, пока в списке есть еще невыполненные задачи. После того, как список задач исчерпан, поток снова засыпает(Suspend). Далее весь цикл повторяется сначала. |
| Автор: Демо 3.3.2006, 18:49 |
| На слабой тоже будет работать Точно! Работает - И НЕ ТРОГАЙ-)) |
| Автор: Snowy 3.3.2006, 18:49 |
| Вариант со Sleep наиболее простой. Также можно стопорить поток через WaitForSingleObject. А главный поток будет занимать и освобождать этот обжект по необходимости. Но Sleep легче всего вписывается в текущую схему. Да и мороки меньше |