0
Я пытаюсь создать приложение WPF, которое снимает видео и скриншоты каждую секунду во время игры.C# WPF Тема, доступная из потока, отличного от
Код
public Form2(string url)
{
InitializeComponent();
axWindowsMediaPlayer1.URL = url;
new Thread(delegate(){
CheckFrame();
}).Start();
}
private void CheckFrame()
{
for (int i = 0; i < 100; i++)
{
Bitmap screenshot = new Bitmap(axWindowsMediaPlayer1.Bounds.Width, axWindowsMediaPlayer1.Bounds.Height);
Graphics g = Graphics.FromImage(screenshot);
g.CopyFromScreen(axWindowsMediaPlayer1.PointToScreen(
new System.Drawing.Point()).X,
axWindowsMediaPlayer1.PointToScreen(
new System.Drawing.Point()).Y, 0, 0, axWindowsMediaPlayer1.Bounds.Size);
pictureBox1.BackgroundImage = screenshot;
System.Threading.Thread.Sleep(1000);
}
}
При использовании значений ху медиаплеере сам я получаю ошибку
Additional information: Cross-thread operation not valid: Control 'axWindowsMediaPlayer1'
accessed from a thread other than the thread it was created on.
При использовании 0 в X/значения Y так просто 0px и 0px с точки вида зрения, он прекрасно работает
В WPF вы, вероятно, должны попытаться использовать объекты Task (TPL) и Dispatcher. С наилучшими пожеланиями, –