我有一臺Labwindows服務器,用於偵聽遠程計算機上的python客戶端的數據。 在Labwindows服務器上,無論何時觸發TCP_DATAREADY事件,我都會讀取緩衝區以從客戶端獲取數據。此時我需要解析數據並更新UI控件。但是,由於數據經常到達,所以最好分配解析數據和更新UI控件到不同線程的任務,這樣服務器不會丟失客戶端的任何數據。LabWindows:實現可處理字符串元素的線程安全隊列
我曾想過在Labwindows中使用線程安全隊列。但是,我從客戶端獲得的數據是一個字符串。我如何構建一個包含字符串元素的隊列?我不能使用指針,因爲每次數據到達時都會更新從客戶端接收到的數據。
下面是一段代碼,從套接字讀取數據:
case TCP_DATAREADY:
if ((dataSize = ServerTCPRead (g_hconversation, receiveBuf,
dataSize, 1000))
< 0)
{
SetCtrlVal(g_hconversation, MAINPNL_TEXTBOX,"Receive Error");
}
else
{
//receiveBuff should be passed to function that decides where to display it
display_value_from_client(receiveBuf);
}
所以,receiveBuf是不斷變化的,並在隊列不會幫助節省指向它。 如何在這裏實現線程,以便我的線程處理解析功能,我只需要擔心從主線程中的套接字讀取數據?
非常感謝。這非常有幫助。 –