C# 任务、代码DUI和剪贴板错误

C# 任务、代码DUI和剪贴板错误,c#,task-parallel-library,clipboard,coded-ui-tests,C#,Task Parallel Library,Clipboard,Coded Ui Tests,我正在更新CodedUI测试程序。我一直在进行的更新的一部分是线程化测试,以便在必要时取消测试,而无需终止测试程序。我创建的任务工作正常,直到CodedUI测试将数据复制到剪贴板,然后尝试检索该数据,以便将其转储到数据库。如果没有任务,这不会产生任何问题,但是对于任务,Clipboard.GetData(DataFormats.Text)返回null 因为在剪贴板请求之前使用了Keyboard.SendKeys,所以我试图看看这是否有帮助,但没有解决问题。解决了这个问题。虽然没有抛出与线程单元状

我正在更新CodedUI测试程序。我一直在进行的更新的一部分是线程化测试,以便在必要时取消测试,而无需终止测试程序。我创建的任务工作正常,直到CodedUI测试将数据复制到剪贴板,然后尝试检索该数据,以便将其转储到数据库。如果没有任务,这不会产生任何问题,但是对于任务,
Clipboard.GetData(DataFormats.Text)
返回null


因为在剪贴板请求之前使用了
Keyboard.SendKeys
,所以我试图看看这是否有帮助,但没有解决问题。

解决了这个问题。虽然没有抛出与线程单元状态相关的错误,但将其设置为STA会使事情正常进行。

您不能直接写入数据库吗?如果没有,有几种方法可以等待aysnc操作。您可能需要等到它完成。通常等待也会超时。@RyanBurnham-我不处理被测试的程序。似乎写入剪贴板的命令是专门为QA测试设计的,因为我看不出用户需要这些信息的原因(这是呼叫中心使用的客户服务程序)。被测试的程序本身连接到一个单独的数据库以获取自己的信息。对于CodedUI操作,它运行
键盘。SendKeys
,等待10秒钟,然后调用
剪贴板。GetData
并处理它需要的数据。我猜这是线程问题,后台线程无法访问另一个线程的剪贴板内容。我发现了一些可能相关的东西