Multithreading 来自工作线程的UI线程更新中的委托(XAML)
我想从WorkerThread更新GUI线程中的一些GUI元素。 GUI(类主页面)按如下方式指定委托函数Multithreading 来自工作线程的UI线程更新中的委托(XAML),multithreading,xaml,user-interface,worker-thread,Multithreading,Xaml,User Interface,Worker Thread,我想从WorkerThread更新GUI线程中的一些GUI元素。 GUI(类主页面)按如下方式指定委托函数 HRESULT MainPage::delegateUpdateGUI(IXRDependencyObject* pSender, XREventArgs* pArgs) { Mutex.lock(); ... Mutex.lock(); Sleep(20); this-> m_textbox->SetText(counter_string); } 委托ptr在外部声明 IX
HRESULT MainPage::delegateUpdateGUI(IXRDependencyObject* pSender, XREventArgs* pArgs) {
Mutex.lock();
...
Mutex.lock();
Sleep(20);
this-> m_textbox->SetText(counter_string);
}
委托ptr在外部声明
IXRDelegate<XREventArgs, IXRDependencyObject> *m_delegateFunction;
在我的WorkerThread中:
...
DWORD WINAPI WorkerProc(LPVOID pParam) {
Mutext.Lock();
Counter++;
...
Mutex.unlock(),
m_delegateFunction->Invoke(myMainPage, NULL);
Sleep(20);
}
当我在这个睡眠(X)条件大于10ms的情况下运行它时,它正在工作,但是如果没有这个睡眠调用,就会抛出一个异常
有人知道抛出异常的原因以及错误或缺失的内容吗
...
DWORD WINAPI WorkerProc(LPVOID pParam) {
Mutext.Lock();
Counter++;
...
Mutex.unlock(),
m_delegateFunction->Invoke(myMainPage, NULL);
Sleep(20);
}