Multithreading 来自工作线程的UI线程更新中的委托(XAML)

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

我想从WorkerThread更新GUI线程中的一些GUI元素。 GUI(类主页面)按如下方式指定委托函数

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);
}