Win32 api でスレッドを操作するのは比較的初めてで、解決できない問題に遭遇しました。
ここに私の問題があります。オペレーターが 4 つの端末をテストできるようにする 4 つのスレッド (意図したとおりに動作します) があります。各スレッドで、成功または失敗のいずれかでメイン ウィンドウ フォームにメッセージを送信しようとしています。これはリスト ボックス内に配置されます。以下はスレッドの 1 つです。残りはまったく同じです。
void Thread1(PVOID pvoid)
{
for(int i=0;i<numberOfTests1;i++) {
int ret;
double TimeOut = 60.0;
int Lng = 1;
test1[i].testNumber = getTestNumber(test1[i].testName);
unsigned char Param[255] = {0};
unsigned char Port1 = port1;
ret = PSB30_Open(Port1, 16);
ret = PSB30_SendOrder (Port1, test1[i].testNumber, &Param[0], &Lng, &TimeOut);
ret = PSB30_Close (Port1);
if(*Param == 1) SendDlgItemMessage(hWnd,IDT_RESULTLIST1,LB_ADDSTRING,i,(LPARAM)"PASS");
else SendDlgItemMessage(hWnd,IDT_RESULTLIST1,LB_ADDSTRING,i,(LPARAM)"FAIL");
}
_endthread();
}
私はコードをデバッグしましたが、リストボックスにデータを入力する以外はすべて実行します。同じコードがスレッドで機能するため、スレッドが何か不足していると思います。メッセージをメイン ウィンドウに送信している間、スレッドをスリープ状態にする必要がありますか?
どんな助けでも大歓迎です。
乾杯