gpt4 book ai didi

c++ - [C++] 对于线程中的 'sleep' 函数,这是否是一种有效的方法?

转载 作者:可可西里 更新时间:2023-11-01 11:39:09 24 4
gpt4 key购买 nike

我想在我的线程类中实现一个 sleep() 函数,但我不知道这是否是一种有效/正确的方法。这是我的整个线程类 (thread.h):

#include <process.h>

struct RUNNABLE{
virtual void run() = 0;
};

class thread{
public:
void start(void *ptr){
DWORD thr_id;
HANDLE thr_handl = (HANDLE)_beginthreadex(NULL, 0, thread_proc, ptr, 0, (unsigned int*)&thr_id);
}

void sleep(int sleep_time, bool alertable){
SleepEx(sleep_time, alertable);
}
private:
static unsigned int __stdcall thread_proc(void *param){
((RUNNABLE*)param)->run();
_endthreadex(0);
return 0;
}
};

正如您可能能够弄清楚的那样,这是我的 sleep() 函数:

void sleep(int sleep_time, bool alertable){
SleepEx(sleep_time, alertable);
}

但这是否会使包含在该线程实例中的实际线程休眠指定的毫秒数?

最好的问候,本杰明:).

编辑:

所以根据 atzz,我可以将 sleep 函数定义为静态成员函数,并调用::SleepEx(),这样我就可以这样调用它:

class test : RUNNABLE{
virtual void run(){
printf("hi");
thread::sleep(1000, false);
}
};

然后这会导致执行“测试”runnable 的线程休眠 1000 毫秒?

最佳答案

它将让调用此成员函数的线程进入休眠状态。

关于c++ - [C++] 对于线程中的 'sleep' 函数,这是否是一种有效的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com