HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
HANDLE hThread;
THREADENTRY32 thread = { 0 };
thread.dwSize = sizeof(THREADENTRY32);
if (Thread32First(hSnap, &thread))
{
do {
if (thread.th32OwnerProcessID == GetCurrentProcessId() && thread.th32ThreadID != GetCurrentThreadId())
{
hThread = OpenThread(THREAD_TERMINATE, 0, thread.th32ThreadID);
TerminateThread(hThread, 0);
CloseHandle(hThread);
}
} while (Thread32Next(hSnap, &thread));
}
CloseHandle(hSnap);
Завершение потоков
Все работает нормально, вот только надо отключить всех юзеров тоесть завершить все потоки при нажатии одной кнопочки в приложении...
Пробовал Thread->Terminate() - завершает тока первый поток.
Есть какие либо идеи?
Заранее благодарю!
Цитата: zergman
Есть программа, когда юзер к ней продрубается создается поток TThread.
Все работает нормально, вот только надо отключить всех юзеров тоесть завершить все потоки при нажатии одной кнопочки в приложении...
Пробовал Thread->Terminate() - завершает тока первый поток.
Есть какие либо идеи?
Заранее благодарю!
Все работает нормально, вот только надо отключить всех юзеров тоесть завершить все потоки при нажатии одной кнопочки в приложении...
Пробовал Thread->Terminate() - завершает тока первый поток.
Есть какие либо идеи?
Заранее благодарю!
Я бы не рекомендовал использовать ТThread - используйте CreateThread например - и сохраняйте хендл процесса в массив. Думаю мысль понятна? В принципе тот же трюк можно применить и для билдеровского класса - но ИМХО какой то он корявый.
Вот кому надо: