Показать сообщение отдельно

  #4345  
Старый 03.02.2020, 23:23
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от RECEIVER  

Я использую поток с циклом. Выгружаю значит скрипт, сворачиваю игру. Затем разворачиваю её и у меня чёрный экран. Цикл останавливаю через EVENT
Помогите сделать нормальный поток с остановкой цикла и завершением самого потока при отгрузке скрипта)

C++:





Код:
HANDLE event
;
void
ThreadProc
(
void
*
pParam
)
{
while
(
WaitForSingleObject
(
event
,
100
)
!=
WAIT_OBJECT_0
)
{
// Anything actions in while
}
_endthread
(
)
;
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
event
=
CreateEvent
(
NULL
,
FALSE
,
FALSE
,
NULL
)
;
_beginthread
(
ThreadProc
,
0
,
NULL
)
;
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
{
SF
->
initPlugin
(
mainloop
,
hModule
)
;
}
break
;
case
DLL_PROCESS_DETACH
:
{
SetEvent
(
event
)
;
}
break
;
}
return
TRUE
;
}

Зачем тебе поток?
 
Ответить с цитированием