Что нового

[Процессы] Как узнать количество потоков в процессе?

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Всем привет.
Как узнать количество потоков в процессе?
Зарание спс :IL_AutoIt_1:
 

svigelf

Знающий
Сообщения
61
Репутация
17
может ты имеешь в виду нитей ? "Thread" :smile:
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
svigelf
И в правду нити...
Написанно thr...
Ну так можно узнать сколько нитей в процессе?)
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Zaramot
Большое спс, много проблем лишится, а показателей станет больше =)
 

Arei

Скриптер
Сообщения
938
Репутация
115
Zaramot, а вы пробовали разобраться с потоками?
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Вот короче функция создает поток, но как его создать?
Кто нибудь может подробно обяснить?

Код:
Func _ThreadCreate($pFuncPtr,$vParam=0,$bCreateSuspended=False,$iStackSize=0)
	If Not IsPtr($pFuncPtr) Then Return SetError(1,0,0)
	Local $iAttrib
	If $bCreateSuspended Then
		$iAttrib=4	; CREATE_SUSPENDED = 4
	Else
		$iAttrib=0	; thread starts immediately
	EndIf

	If $iStackSize And $iStackSize<2048 Then $iStackSize=$_THREAD_DEFAULT_STACK_SIZE

	Local $aRet=DllCall($_COMMON_KERNEL32DLL,"handle","CreateThread","ptr",0, _
		"ulong_ptr",$iStackSize,"ptr",$pFuncPtr,"ulong_ptr",$vParam,"dword",$iAttrib,"dword*",0)

	If @error Then Return SetError(2,@error,0)
	If Not $aRet[0] Then Return SetError(3,0,0)
	$THREAD_LAST_TID=$aRet[6]
	ConsoleWrite("Thread created successfully, handle="&$aRet[0]&", Thread ID="&$aRet[6]&", CreatedSuspended="&$bCreateSuspended&@CRLF)
	Return SetError(0,$aRet[6],$aRet[0])
EndFunc


Функция вырезанна откуда-то от туда:
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Ganibal95 [?]
Как узнать количество потоков в процессе?

Код:
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2") 
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process" ) 
For $objItem in $colItems 
    ConsoleWrite("-----------------------------------" & @CRLF)
    ConsoleWrite( $objItem.Name & "   " & $objItem.ThreadCount & @CRLF)
Next
 
Верх