WorkerThread から GUI スレッド内のいくつかの GUI 要素を更新したいと考えています。GUI (Class MainPage) は、次のようにデリゲート関数を指定します。
HRESULT MainPage::delegateUpdateGUI(IXRDependencyObject* pSender, XREventArgs* pArgs) {
Mutex.lock();
...
Mutex.lock();
Sleep(20);
this-> m_textbox->SetText(counter_string);
}
Delegate ptr が外部で宣言されています
IXRDelegate<XREventArgs, IXRDependencyObject> *m_delegateFunction;
MainPage::OnLoaded メソッド内にロードされます。
m_delegateFunction = CreateDelegate(this, &MainPage::delegateUpdateGUI);
私のWorkerThreadで:
...
DWORD WINAPI WorkerProc(LPVOID pParam) {
Mutext.Lock();
Counter++;
...
Mutex.unlock(),
m_delegateFunction->Invoke(myMainPage, NULL);
Sleep(20);
}
この Sleep(X) 条件で 10 ミリ秒を超える状態で実行すると動作しますが、そのスリープ呼び出しがないと例外がスローされます ....
例外がスローされる理由と、何が間違っているか、または欠落しているかを誰かが知っていますか?