如何每隔X分钟送一面旗子
how to send a flag each X minutes?
我正在工作的一种"控制块",每6分钟发送一个标志。问题是,我不知道是否有一个简单的方法来做到这一点。我曾经在循环中使用clock_t,直到它达到6分钟,然后调用一个方法来发送标志并重新初始化clock_t变量。
我忘了解释一些事情,睡眠不是一个选项,因为块像流一样工作,它必须一直发送一些东西。实际上这个标志会改变发送的内容
Thanks in advance
你可以让线程休眠6分钟,然后发送flag:
for(;;)
{
sendFlag();
sleep(6*60);
}
下面是一些sleep方法的选项,包括c++ 11的std::this_thread::sleep_for
.
您可以简单地使用一个线程函数来打开或关闭一个标志,并每次休眠6分钟。例如:
bool flag = false;
int main() {
while(true) {
if (flag == true) {
flag = false;
}
}
return(0);
}
void threadFunc() {
flag = true;
sleep(360); //360 seconds is 6 minutes
}
注意:您将需要使用互斥锁或信号量,因为现在编写的代码不是线程安全的。如何使用线程也取决于操作系统。除非你使用c++ 11
您不需要为此创建一个完整的线程。使用系统操作系统定时回调。
相关文章:
- 为什么这个do-while循环每隔一个循环只写入数组?
- android.hardware.Camera 无法每隔 2 次打开一次
- 每隔几秒钟移动一次对象
- 循环每隔一行跳过一次
- 删除链表的每隔一个节点
- 具有两个变量的"for"循环,一个变量每次迭代递增,每隔一次迭代递增
- 我的函数返回的是打印到控制台,它只会在我调用它时每隔一段时间C++
- 在读取 Visual C++ 中的二进制文件(而不是其他编译器)后,每隔一个字符都是 NULL
- 每隔n次反转一个字符串
- 如何从字符串中每隔16个字节复制一次数据
- 每隔一行或每一列提取一个特征矩阵作为一个新矩阵
- 每隔n个字符打印一行换行符
- 为什么用于解析我读取的行的内部循环每隔一次迭代就会通过外部读取循环跳过
- C++.从文本文件读取.每隔一段就缺失一次
- JNI_CreateJavaVM() 每隔一次运行应用程序时都会失败(确切地说)
- 每隔几毫秒写入一个文件的最有效(最快)方法是什么
- 每30分钟滚动一次日志
- 在opencv:C++中每隔3秒绘制并显示一个矩形
- 如何每隔X分钟送一面旗子
- 方法在c++中每隔几分钟调用一个函数