我有两个 SWT 按钮,按钮(“开始”)和按钮(“停止”)。当我按下“开始”时,我调用了一个方法: printFiles(inputPath, printer) //扫描“inputPath”目录中的 pdf 并将它们发送到打印机“printer”
我希望 printFiles(inputPath, printer) 始终运行,直到我按下按钮(“停止”)。所以,这是我的第一个想法是如何做到这一点。
//button("Start")
btnStart.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
keepPrinting=true;
while(keepPrinting){
printFiles(inputPath, printer);
}
}
});
//button("Stop")
btnStop.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
keepPrinting=false;
}
});
但是,有一个明显的问题。当我按下按钮(“开始”)时,它永远不会从 while(true) 循环中返回。结果,整个窗口(外壳)停止响应。
你知道如何在按钮的按下监听器中放置一个无限循环吗?
我的直觉说我必须使用并发,以某种方式同步这两个按钮。如果这是正确的,您能否给出一些提示如何实现?
非常感谢!