Clipboard.SetContent () Ошибка удаленного вызова процедуры - PullRequest
0 голосов
/ 23 сентября 2019

В моем приложении 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);
    }
}

1 Ответ

0 голосов
/ 23 сентября 2019

Clipboard.SetContent должен вызываться из потока пользовательского интерфейса.Если вы выполняете этот код из другого потока, вы должны заключить вызов Clipboard в Dispatcher.RunAsync:

await CoreApplication.MainView.Dispatcher.RunAsync(
    CoreDispatcherPriority.Normal,
    () => Clipboard.SetContent(dataPackage));

Также обратите внимание, что это означает, что Clipboard нельзя использовать из фоновой службытакже (это не имеет никакого связанного потока пользовательского интерфейса).

...