WPF 从不同 class 检索飞跃信息
WPF retrieve leap info from different class
我的问题的快速版本是 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);
}
将其发送回 TextBox's Dispatcher
。如果您只使用绑定并让 WPF
为您处理线程之间的调度会更好。
void reader_Frame(string coordinate)
{
//textbox which will output coordinates of the hand
txtCoord.Dispatcher.Invoke(new Action(() => txtCoord.Text = coord));
}
我的问题的快速版本是 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);
}
将其发送回 TextBox's Dispatcher
。如果您只使用绑定并让 WPF
为您处理线程之间的调度会更好。
void reader_Frame(string coordinate)
{
//textbox which will output coordinates of the hand
txtCoord.Dispatcher.Invoke(new Action(() => txtCoord.Text = coord));
}