Быстрая версия моей проблемы заключается в том, что WPF не принимает переменные из другого потока.WPF извлекает информацию о скачках из разных классов
error message:
An unhandled exception of type 'System.InvalidOperationException' occurred in WindowsBase.dll
Дополнительная информация: вызывающий поток не может получить доступ к этому объекту, потому что ему принадлежит другой поток.
Поскольку я подписываюсь на событие качания, я не могу найти работу для второго потока. Есть ли способ в следующем коде разместить информацию о кадре в текстовом поле?
// MainWindow
LeapReader reader = new LeapReader();
public MainWindow()
{
reader.Frame += reader_Frame;
}
void reader_Frame(string coordinate)
{
//textbox which will output coordinates of the hand
txtCoord.Text = coord;
}
// LeapReader
string _coordinates = "";
public delegate void StringEvent(string coord);
public event StringEvent Frame;
void SomeRetrievalMethod(Frame frame)
{
_coordinates = Cursor.Position.ToString();
Frame.Invoke(_coordinates);
}
Вот хороший ресурс, который поможет понять, что, черт возьми, Диспетчер. [link] (https://msdn.microsoft.com/en-us/magazine/cc163328.aspx) –
@MikeEason Эта статья слишком стар. Если вы используете .NET 4.5>. Лучше использовать 'async/await' с TPL, чем' BackgroundWorkers'. И используйте 'Rx' для лучшего отзывчивого приложения –
Спасибо, это сработало! – Danahi