c++ - 在 C++ 中结束一个函数

标签 c++ qt function

我有一个名为 write() 的 C++ 函数,它应该在用户硬盘上写入大量字节。这通常需要超过 30 秒,所以我想让用户能够从 GUI(使用 Qt 创建)Abort operation

所以我有按钮 generate_button。当此按钮被 clicked() 时,我希望有一些东西来结束该功能,无论其进度如何。

我考虑过线程,但我不确定。你能给我一些建议吗?

最佳答案

我可能会使用线程。检查变量以查看操作是否已被取消应该非常简单。

使用互斥锁来锁定对取消变量的访问。这将确保以正确的方式为多个线程读取和写入它。 Another option is if you are using C++11 use an atomic variable.

将您的大写入分成更小的 block 。 8 到 64 KB 应该可以。编写每个 block 后检查您的取消变量,如果已设置,则退出线程。

关于c++ - 在 C++ 中结束一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079934/

相关文章:

c++ - 试图将两个类放在同一个命名空间的不同文件中,但只有第一个 #included 类有效

c++ - "Unlimited"CEdit text without ES_AutoHScroll

c++ - Qt5-QML : Button does not show up after triggered

qt - 用鼠标平移 QScrollArea

postgresql - 函数错误 – postgresql

c++ - 设计生成所有 n 位数字组合的递归函数的最佳方法是什么?

C++ 包含标准 header 的保护

Qt-无法保存jpeg文件

c - c中的输入输出结构函数错误

javascript - 在执行任何函数之前执行一个函数