1

我有两个 SWT 按钮——“开始”和“停止”以及一个org.eclipse.swt.widgets.List. 在列表中,我保留了一个目录和一个打印机名称。

这个想法是将指定目录中的文件 (PDF) 发送到指定的打印机 ( print(inputPath, printerName))。

因此,当我单击“开始”时,Thread()会创建一个新的以调用print(inputPath, printerName).

基本上,任务是:

每次单击“开始” - 创建一个新线程(每次list.getItem(list.getSelectionIndices())都不同)。

每次单击“停止”时 - 销毁特定线程(相同list.getItem(list.getSelectionIndices()))。

我看到了一些带有Future, ExecutorService,Runnable等的示例,但我不知道如何将它们组合在一起以解决我的问题。

因此,任何帮助/提示将不胜感激。

4

1 回答 1

2

只需有一个 Thread 类变量。当您单击按钮开始时,检查线程是否已存在,如果不存在则创建新线程并启动它。isRunning()只是检查一个线程boolean是否处于运行状态

if (thread == null || !thread.isRunning()){
    thread = new MyThreadClass();
    thread.start();
}

当您单击停止时,在线程中设置一个标志,告诉它现在已完成处理,例如setStop().

if (thread != null){
    thread.setStop();
}
于 2013-05-25T18:55:54.773 回答