吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1845|回复: 18
收起左侧

[求助] C++ 让代码延期运行 但是程序不暂停

[复制链接]
Fxmles 发表于 2021-1-10 12:31
本帖最后由 Fxmles 于 2021-1-10 12:38 编辑

在C++ ,不开子线程的情况下,让一段代码隔一段时间再运行,但是程序不暂停(也就是不像Sleep那样,能够延期,但是程序会暂停)

可以修改一下这个代码,在不开子线程的情况下,让程序延期,但是不暂停吗?

                if(zombie->NotDying == false)
                {
                        Creater::CreateGrave(zombie->Row,zombie->X/80);
                        Sleep(1000);
                }

(环境vs2017)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jopyy2020 发表于 2021-1-10 12:35
谢谢楼主的分享

免费评分

参与人数 3吾爱币 -17 收起 理由
魔术使nqy -1 请勿灌水,提高回帖质量是每位会员应尽的义务!
涛之雨 -15 请勿灌水,提高回帖质量是每位会员应尽的义务!
Fxmles -1 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

倾何 发表于 2021-1-10 12:37
[C++] 纯文本查看 复制代码
struct XSleep_Structure 
{
	int duration;
	HANDLE evenHandle;
};
// 非阻塞延时
void XSleep(int nWaitInMsecs)
{
	XSleep_Structure sleep;
	sleep.duration = nWaitInMsecs;
	sleep.evenHandle = CreateEvent(NULL,TRUE,FALSE,NULL);
	
	DWORD dwThreadId;
	CreateThread(NULL,0,&XSleepThread,&sleep,0,&dwThreadId);
 
 
	MSG msg;
	while(::WaitForSingleObject(sleep.evenHandle,0) == WAIT_TIMEOUT)
	{
		// get and dispatch message
		if(::PeekMessage(&msg,NULL,0,0,PM_REMOVE))
		{
			::TranslateMessage(&msg);
			::DispatchMessage(&msg);
		}
	}
	CloseHandle(sleep.evenHandle);
}
 
 
DWORD WINAPI XSleepThread(LPVOID pWaitTime)
{
	XSleep_Structure *sleep = (XSleep_Structure*)pWaitTime;
 
 
	Sleep(sleep->duration);
	SetEvent(sleep->evenHandle);
 
 
	return 0;
 楼主| Fxmles 发表于 2021-1-10 12:46
倾何 发表于 2021-1-10 12:37
[mw_shl_code=cpp,true]
struct XSleep_Structure
{

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C2065        “XSleepThread”: 未声明的标识符        pvzclass        c:\users\administrator\desktop\pvzclass\pvzclass\pvzclass\pvzclass.cpp        169       
b0y 发表于 2021-1-10 13:04
应该有不堵塞线程的延迟方法的。
 楼主| Fxmles 发表于 2021-1-10 13:09
b0y 发表于 2021-1-10 13:04
应该有不堵塞线程的延迟方法的。

怎么弄?楼上的编译不了,未定义的标识符
闲月疏云 发表于 2021-1-10 13:13
Fxmles 发表于 2021-1-10 13:09
怎么弄?楼上的编译不了,未定义的标识符

他那个方法也CreateThread了啊
 楼主| Fxmles 发表于 2021-1-10 13:15
闲月疏云 发表于 2021-1-10 13:13
他那个方法也CreateThread了啊

那只要不堵塞就行,问题是他的编译不了啊!
bitter清酒 发表于 2021-1-10 13:17
感谢楼主.牛逼

免费评分

参与人数 2吾爱币 -16 收起 理由
苏紫方璇 -15 请勿灌水,提高回帖质量是每位会员应尽的义务!
Fxmles -1 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

虚无空幻 发表于 2021-1-10 13:25
你直接用时间戳不就得了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 04:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表