從這個代碼下面執行代碼太快..需要減慢,但如何?
if(!validate_containsNum && !validate_isNumber && !validate_isBlankField){
a.sendMsgToSlave("DATA:TAKE:PEOPLEs:"+pName_sub);
appendToGlobalDataLog("SEND : DATA:TAKE:PEOPLEs:"+pID+":"+p_sub);
String pID = pID_Manage.getText();
a.addtoArrayList("DATA:TAKE:PEOPLEs:"+pID+":"+pName_sub);
at.sendToServer("DATA:TAKE:PEOPLEs:"+pID+":"+pName_sub);
}
從上面的代碼,我有這條線
a.sendMsgToSlave("DATA:TAKE:PEOPLEs:"+pName_sub);
實際上是調用我的客戶,以便得到的回報也pID的從人民TABLE數據獲取問題這將是返回到下一行應該被執行
String pID = pID_Manage.getText();
但隨後作爲下一行作業JTextField是添加某些聖響成具有PID和pName_Sub的組合,但後來當執行時,我發現我的ArrayList不具備pID..so,而不是真正的結果應該是這樣的
DATA:TAKE:PEOPLEs:1:ALBERT (In my arraylist)
它顯示像一個ArrayList這
DATA:TAKE:PEOPLEs::ALBERT (the id is missing)
我需要再次重新提交第二次只能拿到ID ...好像代碼的執行太快和ID的迴歸JTextField中的存儲是slow..any減慢速度的方法?
這不是代碼執行得太快的情況,這是一個競爭條件。對於'a.sendMsgToSlave()'來說,正確的解決方案要麼是阻塞,直到從機的PID被計算並存儲爲止,要麼'a.sendMsgToSlave()'返回PID。實際上,最好的解決方案就是將這兩者結合在一起。 – 2012-04-13 19:22:40