Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Потоки (thread)


Автор: Goliath 21.5.2005, 09:19
Всем привет. У меня вопрос по потокам (thread) в ОС Windows 9x/XP. А вопрос заключается в следующем: у меня есть, допустим, две запущенные программы (насколько я понимаю два запущенных потока) и меня задача задать время выполнения этим двум потокам. То есть, первая программа должна выполняться 6 сек, а вторая 15 сек, можно ли это реализовать без применения языков программирования?
P.S: В Windows 3.11 я точно помню что такое (руководство потоками) можно было делать…

Автор: batigoal 21.5.2005, 12:00
Насколько я знаю, две запущенные программы - это два процесса. Потоки выполняются в пределах одного процесса. А насчет управления ими без создания программ ничего не нашел. Может, это можно сделать с использованием bat-файлов?

Автор: December 22.5.2005, 11:50
Можно приоритеты им менять - но это всего лишь даст фору одному из процессов.
Кстати, в рамках процесса может быть тьма потоков, каждый из которых имеет свой приоритет - так что не всё так прозрачно smile

Автор: rsm 22.5.2005, 12:08
Код

program startproc;

{ Этот код запускает прогу (Каркулятор) и через 3 сек. прибивает ее. }

uses
   Windows;

var
   si: TStartupInfo;
   pi: TProcessInformation;

const
   LIFE_TIME = 3000; // время работы проги, в мс.

begin
   if not CreateProcess(nil, 'calc.exe', nil, nil, false, 0, nil, nil, si, pi) then exit;
   WaitForSingleObject(pi.hProcess, LIFE_TIME);
   TerminateProcess(pi.hProcess, 0);
end.


З.Ы. ИМХО тему надо переместить в раздел "Delphi: WinAPI и системное программирование" (или "C/C++: Системное программирование и WinAPI" если нужен код на С).

Автор: December 22.5.2005, 15:53
rsm
Цитата(Goliath @ 21.5.2005, 09:19)
можно ли это реализовать без применения языков программирования


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)