我想知道如何在另一个类中正确退出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();
}
}