我使用java swingworker作为后台进程运行作业
class btnTakePhotoClicker implements ImageButton.OnClickListener
现在,我需要使用不同的参数多次(异步)调用后台进程。由于它是后台进程,第二个调用将覆盖第一个调用参数。我尝试过的一种方法是使用多个线程,比如Thread t1 = new Thread(){...但它会间歇性地抛出异常。
任何更好的建议。注意,我不能在done(){..方法中等待调用第二个调用,因为我进行了很多调用,并且不确定最初的调用次数。请建议是否有一些好方法。
答案 0 :(得分:1)
您可以将ExecutorService与固定大小的线程池一起使用。您可以找到有关如何设置正确的池大小here
的更多信息以下是可以尝试的内容:
ExecutorService service = Executors.newFixedThreadPool(5)//将任意值设置为5
通过实施Callable接口
在call方法中调用Build_JobParams.runJob()。
service.submit(/ **在此处提交“Callable”实例** /)
如果Build_JobParams.runJob()没有返回任何值,您也可以调用 service.execute但在这种情况下,您需要创建一个Runnable。
希望这会有所帮助!!