我有一个名为 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/