0
我有一個託管的C++應用程序,我開始一個新的線程來做一些東西,並更新一些文本框,它循環和睡在每個循環的結尾。由於它睡覺,我需要在一個新的線程,所以用戶界面不會崩潰。然後我意識到我需要調用創建用戶界面來訪問文本框的線程,但是現在我回到了主線程,所以睡眠崩潰了。我應該如何解決這個問題。調用Windows窗體線程和睡眠
private: System::Void buttonStartCamera_Click(System::Object^ sender, System::EventArgs^ e)
{
ThreadStart^ threadStart = gcnew ThreadStart(this, &UserInterface::SetText);
Thread^ newThread = gcnew Thread(threadStart);
newThread->Start();
}
void SetText()
{
if (this->textBoxCameraOneX->InvokeRequired)
{
MyDel^ del = gcnew MyDel(this, &UserInterface::SetText);
this->Invoke(del);
}
else
{
int count = 0;
srand (time(NULL));
for (count = 0; count < 20; ++count)
{
for each (Camera^ camera in cameraList)
{
textBoxCameraOneX->Text = count.ToString();
}
Sleep(300);
}
}
}
你爲什麼用這個線程?設置20個文本框在UI線程中首先執行得更快...... – 2013-03-20 21:08:18
由於sleep()崩潰了UI – ThingWings 2013-03-20 21:16:46