0
我想更新從我用這個函數創建一個線程UI線程:更新UI從另一個線程的C++ Windows窗體應用程序
CreateThread
這裏是我的代碼
[STAThread]
void Main(array<String^>^ args) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
gRecvSockThread = CreateThread(NULL, 0, recvSocket, NULL, 0, NULL);
MyApp::MyForm form;
Application::Run(%form);
}
DWORD WINAPI recvSocket(void *arg) {
char recvbuf[8];
RtlZeroMemory(recvbuf, 8);
while (gSocket->getStateSocket() != -1) {
int iResult = recv(gSocket->getSocketFD(), recvbuf, 8, MSG_WAITALL);
if (iResult > 0) {
if (strcmp("accepted", recvbuf) == 0) {
//updateUIValidated(); //here I would like to access a label and make it visible for example..
}
else {
//updateUIRejected();
}
}
}
return 0;
}
你能否解釋關於特定問題,你面對?比賽條件? –
recvSocket是一個從線程執行的函數。從這個函數我想訪問ui線程,你可以在strcmp後看到我想updateUI,但我沒有訪問我的表單的按鈕... – DevAndroid
你需要在你的窗體中使用一些公共函數使其可訪問。 –