Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизКак узнать какие threads запущены? Найти похожие ветки
← →
Паша_ (2006-02-02 13:50) [0]Здравствуйте мастера.Помогите пожалуйста решить такую проблему:
Создается поток CreateThread(nil, 0, @RepeatShow, @Param, 0, ThreadId),
потом еще один и еще.А как например уничтожить поток,который был запущен 16 по счету(или например для файла myfile.txt)?
← →
Digitman © (2006-02-02 13:59) [1]
> как .. уничтожить поток
Уничтожить принудительно ?
Или же дав ему, потоку, возможность самостоятельно "закруглиться по хозяйству" по некоей "команде" ?
Разные ж вещи ..
← →
ZeroDivide © (2006-02-02 14:02) [2]Как узнать какие threads запущены?
type TKernelInfo = record
CpuUsagePcnt:dword;
Numthreads:dword;
NumVMS:dword;
end;
vsize:dword
pkey:hkey;
RegQueryValueEx(pkey,"KERNEL\Threads",nil,regtype, @fkernelinfo.numThreads,@vsize);
А как например уничтожить поток,который был запущен 16 по счету?
CreateThread возвращает тебе хендлы. Храни их.
И используй в
TerminateThread(
HANDLE hThread, // handle to the thread
DWORD dwExitCode // exit code for the thread
);
Чтобы завершить поток.
← →
Digitman © (2006-02-02 14:07) [3]
> Создается поток CreateThread.. потом еще один и еще
CreateThread - это функция.
А раз это функция, то она призвана возвращать некий результат.
В данном случае результат работы этой ф-ции - хэндл объекта-потока, который м.б. и д.б. использован в прочих ф-циях, осуществляющих доступ к объектам-потокам с той или иной целью.
Решение очевидно - хранить результаты вызовов ф-ции CreateThread() в некоем списке .. или массиве ...
Кр.того, в делфи-приложениях крайне желательно пользовать для создания/старта потоков не CreateThread, а BeginThread. Детали отличий между этими ф-циями - вопрос отдельного обсуждения.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c