내 WPF 응용 프로그램에 명령을 수신하는 스레드가 있습니다. WPF 응용 프로그램에서 스크린 샷을 가져 오는 명령을 받으면 작업이 "screenshotService"로 넘겨집니다. 내가 interweb에 어딘가에 화면을 캡처하는 솜 코드를 발견, 작동하는 것 같다,하지만 난 그것을 통해 생각 havent 한 .... 나는이 예외주고, 다른 스레드에서이 화면을 캡처 할 수 없습니다 말을WPF 메인 스레드 이외의 스레드에서 스크린 샷 찍기
{"This API was accessed with arguments from the wrong context."}
왼쪽 내 스크린 샷 메서드의 시그니처가 UI에서 UIElement를 가져오고,이 그리드는 항상 동일하며 takeScreenshot 메서드의 생성자에 종속됩니다.
어떻게하면이 스크린 샷을 찍을 수 있습니까? 당신이 실패하는 것 스크린 샷 코드의 확인
ThreadStart start = delegate()
{
Dispatcher.Invoke(DispatcherPriority.Normal,
new Action<string>(TakeScreenshot),
"From Other Thread");
};
new Thread(start).Start();
BackgroundWorker _backgroundWorker = new BackgroundWorker();
_backgroundWorker.DoWork += _backgroundWorker_TakeScreenshot;
_backgroundWorker.RunWorkerAsync(5000);
void _backgroundWorker_TakeScreenshot(object sender, DoWorkEventArgs e)
{
}
위치 : – Andy