循环退出

时间:2015-06-25 12:40:55

标签: java loops while-loop java-websocket

我想知道如何在另一个类中正确退出while循环。

我的“奴隶”应用通过我的“主应用”与WebSocket连接。 这个“奴隶应用程序”正在检查目录中是否有新文件。 将来,它将分析这些新文件。

在我的奴隶应用程序中,我有Callback,告诉我它是否已启动/暂停/停止...

我希望拥有什么,是在启动我的“主应用”时启动我的循环方法(通过我的回调启动?),以便在我的主应用程序停止时停止循环。 ..和....

My Loop Class:

public class Loop extends Thread {
    private boolean progIsFinished;

    public Loop() {
    }

    public void run() {
        try {
            waitingForFiles();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public void waitingForFiles() throws Exception {
        progIsFinished = false;
        final File folder = new File("folder");

        long sleepDuration = 10000;
        ArrayList<File> newFileList;

        int counter = 0;
        while (progIsFinished != true) {
            newFileList = listLastModifiedFiles(folder, sleepDuration);
            Thread.sleep(sleepDuration);
        }
    }

    public static ArrayList<File> listLastModifiedFiles(File folder, long sleepDuration) throws Exception {
        ArrayList<File> newFileList = new ArrayList<File>();
        // return the new file
        return newFileList;
    }
}

我的主要课程:

private Main(){
    // read conf.xml and stores variables
    readConfig();
    if ( ServerConnected ) {
        // connect to server via URL
        connect( serverURL );
    } else
        System.out.println("No Conf or No connexion");
}

@Override
public void connectCallback() {
    System.out.println("CONNECTED");
}

@Override
public void startCallback() {
    // debug
    System.out.println("SIMULATION IN PROGRESS");
    loop = new Loop(this);
    try {
        loop.start();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

@Override
public void stopCallback() {
    // debug
    System.out.println("SIMULATION STOPPED");
}
@Override
public void pauseCallback() {
    // debug
    System.out.println("SIMULATION IN PAUSE - WAIT FOR RESUME");

}
public static void main(String[] args) {       
    Main main = new Main(); 
    }
}

0 个答案:

没有答案