2013-02-07 60 views
1

你好我正在創建一個讀取和寫入串行端口的程序。在程序開始時,我調用了ReadSerialPort,WriteSerialPort和JWakeup類。同步兩個並行工作的類

我的問題是:當我從JWakeup向串口寫入內容時,我想等到串口響應。

public class MainClass{ 


public static void main(String args[]){ 

    new ReadSerialPort().OpenSerialPort(); 
    new WriteSerialPort().OpenSerialPort(); 

    new JWakeup().setVisible(true); 
}} 


public class JWakeUp extends JFrame implements ActionListener{ 


public JWakeUp() { 
    super("JWakeUp"); 

    //Other Code 

    new WriteSerialPort().writeDataToSerialPort("WritenString"); 

    //In this part I want to know when the class ReadSerialPort() 
    // will read the "readenString" 

}} 

回答

0

您可以在Semaphore semaphore = new Semaphore(0);以外的類中創建信號量並將其傳遞給這些類。在完成ReadSerialPort使用semaphore.release()和裏面的JWakeUp你在等待ReadSerialPort使用semaphore.acquire()

+0

它的工作。非常感謝 –

+0

你知道我是否可以在等待semaphore.release() –

+0

而不是等待semaphore.acquire()的線程中顯示進度條,因爲該線程被禁用 – Abdul