【发布时间】:2021-06-26 23:54:59
【问题描述】:
我有一个情况,我有多个线程访问剪贴板并执行一些睡眠的操作。基本上我不想将错误的内容复制到剪贴板并以不正确的方式执行某些操作。
目前,我有一个想法是使用互斥锁来锁定std::string 变量并将所需的数据存储在其中,然后存储到剪贴板。完成动作后,我将其解锁。然后另一个线程访问变量,然后是剪贴板和操作。
由于我从未使用过互斥体,所以我的问题是 - 仅执行上述操作就可以吗?
我正在使用以下库来管理剪贴板:https://github.com/dacap/clip
【问题讨论】:
-
互斥锁可用于保护字符串不被多个线程同时访问。听起来您可能需要condition variable 来同步线程对字符串的访问顺序。
-
为什么要使用剪贴板在线程之间传递信息?这不是它的本意。如果您可以显示您当前的代码,那将非常有用,也许有人可以提供更好的解决方案。
-
我正在使用剪贴板,因为我的程序与使用剪贴板粘贴代码的程序交互。
标签: c++ multithreading thread-safety mutex clipboard