#include?"afxmt.h"
創(chuàng)新互聯(lián)主打移動網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護(hù)、域名注冊、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實(shí)力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再決定采用什么樣的設(shè)計(jì)。最后,要實(shí)現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計(jì),我們還會規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。
//全局變量
CEvent?event(FALSE,?TRUE);?//第二個參數(shù)為TRUE表示手動信號
event.SetEvent(?);
//線程中要等待的地方
WaitForSingleObject(event,?INFINITE)?//永遠(yuǎn)等待
......//線程中的代碼
event.ResetEvent(?);??//線程掛起
//-----------------------------------------------------
//以上代碼C好像不行,可以用笨辦法
//定義一個全局標(biāo)識變量int?flag=0;
//在線程中
while(flag==0)?//在主線程中改變flag的值,一旦不為0,則執(zhí)行線程中的代碼
{
Sleep(1);
}
......//線程要執(zhí)行的功能
姓名:馮成? 學(xué)號:19020100164? 學(xué)院:丁香二號書院
轉(zhuǎn)自:
【 嵌牛導(dǎo)讀 】本文將介紹linux下的C語言開發(fā)中的線程等待
【 嵌牛鼻子 】linux C語言?線程等待
【 嵌牛提問 】linux下的C語言開發(fā)中的線程等待是什么?
和多進(jìn)程一樣,多線程也有自己的等待函數(shù)。這個等待函數(shù)就是pthread_join函數(shù)。那么這個函數(shù)有什么用呢?我們其實(shí)可以用它來等待線程運(yùn)行結(jié)束。
#include stdio.h
#include pthread.h
#include unistd.h
#include stdlib.h
void func(void* args)
{
sleep(2);
printf("this is func!\n");
}
int main()
{
pthread_t pid;
if(pthread_create(pid, NULL, func, NULL))
{
? ? return -1;
}
pthread_join(pid, NULL);
printf("this is end of main!\n");
return 0;
}
編寫wait.c文件結(jié)束之后,我們就可以開始編譯了。首先你需要輸入gcc wait.c -o wait -lpthread,編譯之后你就可以看到wait可執(zhí)行文件,輸入./wait即可。
[test@localhost thread]$ ./thread
this is func!
this is end of main!
函數(shù)應(yīng)該是沒有。。sleep掛起了整個就停止了肯定不行
你可以弄個循環(huán),定義兩個時間,一個是你準(zhǔn)備開始等待的時間start,一個是當(dāng)前時間current
用c語言的時間函數(shù)得到這兩個時間,做差
如果差值是0.1秒,就繼續(xù)向下進(jìn)行,如果不是0.1,就繼續(xù)循環(huán)判斷這樣
while((current - start) 0.1); 大概是這么個意思。。自己寫個循環(huán)把這個線程hang住
消息隊(duì)列的等待就是GetMessage,沒辦法自己寫,除非你打算改Windows本身。這個函數(shù)如果沒有消息進(jìn)來就會釋放CPU,如果不希望等待用PeekMessage。消息循環(huán)的格式是固定的。
包含頭文件:
#include
windows.h
調(diào)用
Sleep(3000);
就是等待3000毫秒(3秒)。第一個字母S大寫。
--------
也可以自己寫一個
等待
整數(shù)秒的函數(shù):
#include
time.h
void
wait
(
int
seconds
)
{
clock_t
endwait;
endwait
=
clock
()
+
seconds
*
CLK_TCK
;
while
(clock()
endwait)
{}
}
調(diào)用
wait(3);
就是等待3秒