Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
Thread.cpp
[詳解]
1// ----------------------------------------------------------------------------
6
7#include "pch.h"
8#include "Thread.h"
9
10using namespace alt;
11
13{
14 _callback = NULL;
15 _dwThreadID = 0;
16}
17
19{
20 _callback = callback;
21 _dwThreadID = 0;
22}
23
25 PTHREAD_START_ROUTINE function, LPVOID lpvParam, DWORD dwCreationFlag)
26{
27 BOOL ret = TRUE;
28
29 PTHREAD_START_ROUTINE threadFunction =
30 function == NULL ? _callback->Invoker : function;
31 lpvParam = function == NULL ? _callback : lpvParam;
32
33 _hObject = ::CreateThread (
34 NULL, 0, threadFunction, lpvParam, dwCreationFlag, &_dwThreadID);
35 if (_hObject == NULL)
36 {
37 ret = FALSE;
38 }
39
40 return ret;
41}
42
43BOOL Thread::Suspend () const
44{
45 return ::SuspendThread (_hObject) == (DWORD)-1 ? FALSE : TRUE;
46}
47
48BOOL Thread::Resume () const
49{
50 return ::ResumeThread (_hObject) == (DWORD)-1 ? FALSE : TRUE;
51}
52
54{
55 return ::SetThreadPriority (_hObject, (int)priority);
56}
スレッドに関するWindowsAPIを集約したクラス
プリコンパイル済みヘッダー ファイルです。
HANDLE _hObject
ハンドルを使用するWindowsAPIで保持するHANDLE値
BOOL APIENTRY SetPriority(ThreadPriority priority) const
スレッド実行優先度を変更します。
Definition: Thread.cpp:53
BOOL APIENTRY Resume() const
スレッドを再開します。
Definition: Thread.cpp:48
BOOL APIENTRY Create(PTHREAD_START_ROUTINE function=NULL, LPVOID lpvParam=NULL, DWORD dwCreationFlag=0)
スレッドを作成します。
Definition: Thread.cpp:24
APIENTRY Thread()
コンストラクタ
Definition: Thread.cpp:12
BOOL APIENTRY Suspend() const
スレッドを一時停止します。
Definition: Thread.cpp:43
skeleton::ICallback * _callback
Definition: Thread.h:84
DWORD _dwThreadID
Definition: Thread.h:85
Threadクラスのスレッド実行関数を設定します。
static DWORD APIENTRY Invoker(LPVOID me)
コールバック関数呼び出し用インターフェース
Definition: DBLibrary.h:12
ThreadPriority
スレッドの優先順位
Definition: Thread.h:17