第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如下還要定義什么東西?還有填進(jìn)去的東西到底是什么意思?

如下還要定義什么東西?還有填進(jìn)去的東西到底是什么意思?

API
慕哥6287543 2022-07-14 15:11:24
CreateThread()里的六個(gè)參數(shù)里的第3個(gè)和第四個(gè)參數(shù)(LPTHREAD_START_ROUTINE lpStartAddress和 LPVOID lpParameter)要怎么填?
查看完整描述

3 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

一、Windows API函數(shù)。該函數(shù)在主線程的基礎(chǔ)上創(chuàng)建一個(gè)新線程。微軟在Windows API中提供了建立新的線程的函數(shù)CreateThread。

二、CreateThread將在主線程的基礎(chǔ)上創(chuàng)建一個(gè)新線程,大致做如下步驟:

1.在內(nèi)核對象中分配一個(gè)線程標(biāo)識(shí)/句柄,可供管理,由CreateThread返回

2.把線程退出碼置為STILL_ACTIVE,把線程掛起計(jì)數(shù)置1

3.分配context結(jié)構(gòu)

4.分配兩頁的物理存儲(chǔ)以準(zhǔn)備棧,保護(hù)頁設(shè)置為PAGE_READWRITE,第2頁設(shè)為PAGE_GUARD

5.lpStartAddr和lpvThread值被放在棧頂,使它們成為傳送給StartOfThread的參數(shù)

6.把context結(jié)構(gòu)的棧指針指向棧頂(第5步)指令指針指向startOfThread函數(shù)

三、MSDN中CreateThread原型:

HANDLE CreateThread(

LPSECURITY_ATTRIBUTES lpThreadAttributes,//SD

SIZE_T dwStackSize,//initialstacksize

LPTHREAD_START_ROUTINE lpStartAddress,//threadfunction

LPVOID lpParameter,//threadargument

DWORD dwCreationFlags,//creationoption

LPDWORD lpThreadId//threadidentifier

)

processthreadsapi.h中CreateThread原型:

WINBASEAPI

_Ret_maybenull_

HANDLE

WINAPI

CreateThread(

_In_opt_LPSECURITY_ATTRIBUTES lpThreadAttributes,

_In_SIZE_T dwStackSize,

_In_LPTHREAD_START_ROUTINE lpStartAddress,

_In_opt___drv_aliasesMemLPVOID lpParameter,

_In_DWORD dwCreationFlags,

_Out_opt_LPDWORD lpThreadId

);

四、示例:


查看完整回答
反對 回復(fù) 2022-07-18
?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

關(guān)于六個(gè)參數(shù):第一個(gè)是所創(chuàng)線程的安全屬性,多設(shè)置為NULL; 第二個(gè)是所創(chuàng)線程堆棧的大小,多設(shè)為0; 第三個(gè)是你創(chuàng)建的線程的地址;(此處應(yīng)為你的線程函數(shù)的函數(shù)名) 第四個(gè)是傳遞給你的線程函數(shù)的參數(shù); 第五個(gè)是表示你創(chuàng)建的線程是否立即執(zhí)行,設(shè)為0則立即執(zhí)行; 第六個(gè)則是你創(chuàng)建線程的ID號(hào),設(shè)為NULL就行。關(guān)于線程你要知道他有一個(gè)對應(yīng)的線程函數(shù),你創(chuàng)建線程后即執(zhí)行你的函數(shù)(若你指定第五個(gè)參數(shù)為0立即執(zhí)行,所執(zhí)行的函數(shù)即為第三個(gè)參數(shù))對于二樓他設(shè)置了一個(gè)等待,若無此等待可能會(huì)導(dǎo)致創(chuàng)建線程的函數(shù)已經(jīng)退出,而你的線程卻還在運(yùn)行。

查看完整回答
反對 回復(fù) 2022-07-18
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

(1)LPTHREAD_START_ROUTINE lpStartAddress 指定了線程函數(shù)的起始地址,新建線程將從此地址開始執(zhí)行,直到return語句返回,把控制權(quán)交給操作系統(tǒng)。
(2)LPVOID lpParameter 則是傳遞給線程函數(shù)的參數(shù),也即傳遞給(1)中指定的線程函數(shù)的地址。
以下是一個(gè)例子:創(chuàng)建線程后,將轉(zhuǎn)到線程函數(shù)執(zhí)行,遇到return語句后返回到main函數(shù)。

#include <iostream>
#include <windows.h>

using namespace std;

/*ThreadProc為LPTHREAD_START_ROUTINE lpStartAddress
*參數(shù)指定的線程函數(shù).lpParam則是LPVOID lpParameter指
*定的傳遞給線程函數(shù)的參數(shù)*/

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
for (int i = 0;i < 20;++i)
{
cout << "I am from a thread,count = " << i <<endl;
}

return 0;
}

int main()
{
HANDLE hThread;
DWORD dwThreadID;

hThread = ::CreateThread(
NULL,
NULL,
ThreadProc, // 線程入口地址
NULL,
0,
&dwThreadID);

::WaitForSingleObject(hThread,INFINITE);
::CloseHandle(hThread);

return 0;
}


查看完整回答
反對 回復(fù) 2022-07-18
  • 3 回答
  • 0 關(guān)注
  • 163 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)