//Бывают такие моменты, когда необходимо редактировать элементы формы окна ( кнопку, картинку, поле ввода)
//Такие действия разрешены только из того потока, в котором был создан элементы
//Для Редактирвание Control элементов из другого потока необходимо выполнить код от имени того потока
//В котором был создан Control
this.wFrame.Dispatcher.Invoke(new Action<object, AForge.Video.NewFrameEventArgs>((x, y) =>
{
BitmapImage bitmapImage = Assistant.getBitmapImage(y.Frame.Clone() as System.Drawing.Image);
this.wFrame.Stretch = Stretch.Fill;
this.wFrame.Source = bitmapImage;
}), sender, eventArgs);
//В этом примере, в фигурных скобках, располагается код,
//который выполняется в том потоке, в котором был создан this.wFrame
//В этот код передаются 2 переменнные с типами: object и AForge.Video.NewFrameEventArgs,
//а сами переменные это: sender и eventArgs,
//но в том коде, что они выполняются, переменные sender и eventArgs фигурируют как x и y
//Подобное можно сделать по другому
this.wFrame.Dispatcher.Invoke(new Action<object , AForge.Video.NewFrameEventArgs>(onFrame), sender , eventArgs);
//Только вместо фрагмента кода тут вызывается функция onFrame в которую так же передаются прмененные sender и eventArgs
//С типам object и AForge.Video.NewFrameEventArgs