【发布时间】:2020-06-07 23:06:08
【问题描述】:
我的程序在按下按钮时运行一个函数。在里面,我执行一个动作,然后显示一个进度对话框微调器。现在我想等到我得到“响应”,所以我在 T 时间内获得了一个信号量。
在我尝试获取信号量之前,我认为该函数会执行并且会显示一个进度条,但程序最终会进入信号量获取并休眠,从而阻塞其他函数(可能)。信号量超时后显示进度对话框。在继续之前,如何确保所有先前的功能都成功完成?这是我的 onClick 函数:
public void onButtonClick(View view) throws InterruptedException {
do_action();
progress_dialog.show();
boolean acquired = my_semaphore(15, TimeUnit.SECONDS);
if (!acquired) {
// action timed out
// do something
} else {
// set elsewhere in the program
// a - ok
}
}
我怎样才能更好地实现它?
【问题讨论】: