Qt(c++)中的简单网络超时
Simple network timeout in Qt(c++)
我正在Qt中编写一个简单的网络文件传输应用程序,我正在努力实现超时。
基本上,我想要的是以下内容,
while(!AcknowledgeReceived)
{
if(timeout)
{
break;
}
}
目前,超时是由Qtimer更改的,但一旦循环开始执行,它就永远不会离开。(插槽QTimer发射到的不会被执行。)我认为这与线程有关,但要正确实现它,我在这方面还很新。
所以我要问你的问题是,我如何确保方法翻转超时被执行,或者我如何用另一个方法获得相同的结果?
这样循环时,Qt主事件循环将不会运行,因为它在对函数的调用中。
你要么需要重新设计你的应用程序,只使用插槽和信号,这样你就不需要循环了。或者你必须自己处理Qt事件。
例如
QNetworkAccessManager netman;
QNetworkRequest request{url};
QNetworkReply* reply = netman.post(request, data);
while (!reply->isFinished())
{
QThread::msleep(1);
qApp->processEvents();
}
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 从函数返回任意简单类型的数据
- 如何在没有函数的情况下编写此代码并使C++更简单?
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法