uwp - Clipboard.SetContent() 远程过程调用失败
问题描述
在我的 UWP 应用程序中,当我尝试在其中设置内容Clipboard
时,出现以下异常。
目标 SDK 版本:Windows 10 SDK,版本 1903
System.Exception:远程过程调用失败。(来自 HRESULT 的异常:0x800706BE)在 Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(DataPackage 内容)
public static void CopyTextToClipboard(string textToCopy)
{
if (!string.IsNullOrEmpty(textToCopy))
{
var dataPackage = new DataPackage();
dataPackage.RequestedOperation = DataPackageOperation.Copy;
dataPackage.SetText(textToCopy.Trim().Replace(" ", string.Empty));
Clipboard.SetContent(dataPackage);
}
}
解决方案
Clipboard.SetContent
必须从 UI 线程调用。如果您从不同的线程执行此代码,则必须将Clipboard
调用包装在 a 中Dispatcher.RunAsync
:
await CoreApplication.MainView.Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
() => Clipboard.SetContent(dataPackage));
另外,请注意,这意味着Clipboard
也不能从后台服务中使用(这没有关联的 UI 线程)。
推荐阅读
- arrays - 在 Twig 中:检查数组元素是否存在。如果不设置这一元素
- r - 使用部分匹配的字符串合并两个 data.frame
- c++ - 从函数获取 char* 后的条件 gdb 断点
- python - 在熊猫数据框字符串列中的第 n 个换行符后丢弃字符串
- command - 如何使我的自定义命令对 linux 中的所有用户可用
- c# - 为什么 Azure Active Directory 身份验证会导致我的 ASP.NET Core 应用程序中出现字符编码错误?
- salesforce - 具有自定义字段和标准字段的 Salesforce 自定义对象
- ajax - do_shortcode 没有运行 ajaxlaodmore 简码
- weblogic12c - weblogic 服务器进入警告状态
- bigdata - 有没有更好的方法来优化 python 中两个 260k 行的大列表的 compare_code,它仅适用于 fes 行