VC一个循环中调用一个带有定时器的函数时,如何等带有定时器的函数执行完,再进行下一次循环调用?
VC一个循环中调用一个带有定时器的函数时,如何等带有定时器的函数执行完,再进行下一次循环调用?感觉是带有定时器的函数还没执行完就执行下一次循环调用。。。...
VC一个循环中调用一个带有定时器的函数时,如何等带有定时器的函数执行完,再进行下一次循环调用?感觉是带有定时器的函数还没执行完就执行下一次循环调用。。。
展开
展开全部
可以这样做利用 线程来做,在每次循环的时候CreateThread创建线程循环中利用waitforsingleobject 函数来等待线程执行完毕,你要调用的函数就在线程里面进行调用这样就可以实现每次函数执行完下次循环才会开始。
#include "stdafx.h"
#include <windows.h>
#include <process.h> /* _beginthread, _endthread */
#include <stddef.h>
#include <stdlib.h>
#include <conio.h>
#include "stdio.h"
#include <process.h>
void print() //要调用的函数
{
printf("fs");
}
DWORD WINAPI ThreadProc(
LPVOID lpParameter // thread data
)
{
print();
Sleep(3000); //模拟执行时间
return 0;
}
int main(int argc, char* argv[])
{
int i = 0;
for(; i < 3; ++ i)
{
HANDLE h_thread = CreateThread(NULL,0,ThreadProc,NULL,0,NULL); //创建线程
WaitForSingleObject(h_thread ,INFINITE); //等待
}
return 0;
}
#include "stdafx.h"
#include <windows.h>
#include <process.h> /* _beginthread, _endthread */
#include <stddef.h>
#include <stdlib.h>
#include <conio.h>
#include "stdio.h"
#include <process.h>
void print() //要调用的函数
{
printf("fs");
}
DWORD WINAPI ThreadProc(
LPVOID lpParameter // thread data
)
{
print();
Sleep(3000); //模拟执行时间
return 0;
}
int main(int argc, char* argv[])
{
int i = 0;
for(; i < 3; ++ i)
{
HANDLE h_thread = CreateThread(NULL,0,ThreadProc,NULL,0,NULL); //创建线程
WaitForSingleObject(h_thread ,INFINITE); //等待
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询