我正在开发一个多线程应用程序,我面临着必须使用剪贴板的问题(我正在使用 Qlikview API - 并且我需要将表格复制到 Excel 中),问题是我认为会发生什么是这样的:
在线程#1 上,我打开 QW 文档并复制表格,在将其粘贴到 Excel 工作表中之前,线程#2 出现并使用剪贴板从其文档复制表格。我很好奇是否可以使用多线程应用程序中的剪贴板?我已经阅读了有关使用剪贴板的各种内容,并且我所理解的唯一明确的事情是该方法必须是 STA (?)。所以我现在有点困惑。谢谢
由于剪贴板是共享资源,因此您需要非常小心。确实很有可能thread1中的操作会被thread2抢占。您应该能够使用关键部分来解决这个问题,但是......您需要考虑系统上的其他应用程序也以难以预测的方式参与其中。其他剪贴板侦听器将做他们的事情,可能将数据粘贴到自己中,或者打开剪贴板以“查看”内容。这将挫败您快速复制/粘贴数据的尝试,因为复制后您可能需要等待 1000 毫秒左右,然后才能可靠地粘贴它。
您需要考虑如果用户运行剪贴板扩展程序会发生什么(您将用您的废话填满它)。远程桌面怎么样?您将必须等待剪贴板通过网络同步,在某些情况下,这意味着您可能有另一组剪贴板监视应用程序渴望在您有机会粘贴剪贴板数据之前检查您的剪贴板数据。
然后考虑一下这样一个事实:剪贴板是为了方便用户而设计的,而不是作为程序员的拐杖。
如果你继续沿着这条路走下去,你注定会失败。这是一个坏主意,不可能在不造成附带损害的情况下实施。你应该重新考虑你的设计。不,我没有更好的想法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)