我有一个具有以下方法的线程。
我写这段代码是为了在2秒后结束失败,如果在2秒内没有发生中断,则执行start Newound()
。如果线程在isLateToTimeout=true
时中断,它应该调用start Newound()
并完成执行,以便线程将被终止。对于任何其他中断,它应该再次开始等待2秒。
我想知道的是,在catch块中调用startnewrund()
之后,这个线程是否会终止(如上所述)。
public void run() {
try {
Thread.sleep(2000);
System.out.println("FAILURE"));
startNewRound();
} catch (InterruptedException e) {
if (isLateToTimeout){
startNewRound();
}
else{
run();
}
}
}
在@BoristheSpider的输入之后,我想出了run方法的这个解决方案。
public void run() {
int i = 0;
while(i<=200){
if (i == 200){
startNewRound();
break;
}
else{
try {
Thread.sleep(10);
} catch (InterruptedException e) {
if (isLateToTimeout){
startNewRound();
break;
}
else{
i = 0;
}
}
}
i++;
}
}
希望这是在两次调用start Newound()
后正确终止线程而不会导致stackOverflow的解决方案。
目前,我使用的是firebase实时数据库。因此,我的数据更改来自另一个线程。因此,我无法控制何时更新新的数据。然后我如何知道何时调用以刷新UI? 谢谢
问题内容: 关于程序流,这一直困扰着我一段时间。 我想知道是否有可能从Method中捕获错误,以阻止它执行通常无法跟着它执行的Method,就像下面我无法工作的示例所示。 我通常会有一个静态int变量,该变量会在程序运行时初始化为0,然后,如果某个方法捕获到异常,它将使int递增,并且每个方法仅在int为0时才运行。 这行得通,但我只是想知道是否可以用异常处理替换int shindig。 问题答案
问题内容: 关于程序流,这一直困扰着我一段时间。 我想知道是否有可能从Method中捕获错误,以阻止它执行通常无法跟着它执行的Method,就像下面我无法工作的示例所示。 我通常会有一个静态int变量,该变量会在程序运行时初始化为0,然后,如果某个方法捕获到异常,它将使int递增,并且每个方法仅在int为0时才运行。 这行得通,但我只是想知道是否可以用异常处理替换int shindig。 问题答案
TestController使用一个TestService,它有一个Spring@async asyncComp.getGood(s)方法。当输入字符串不是“good”时,会引发异常。TestController将获得异常,在其余响应中,状态500内部服务器错误。我找不到我项目的确切代码,但找到了一些关于使用CompletableFuture的想法。在答案区域,我发布了我写的作为测试应用程序的内容
本文向大家介绍jQuery 判断图片是否加载完成方法汇总,包括了jQuery 判断图片是否加载完成方法汇总的使用技巧和注意事项,需要的朋友参考一下 对于图片的处理,例如幻灯片播放、缩放等,都是依赖于在所有图片完成之后再进行操作。 今天来看下如何判断所有的图片加载完成,而在加载完成之前可以使用 loading 的 gif 图表示正在加载中。 一、普通方法 监听 img 的 load 方法,每 loa
我已经使用C#(库项目)和Aspect(AOP)编写了Azure函数v1用于日志记录。我在catch块中没有得到异常。 捕获异步方法引发的异常 我有上面讨论的相同问题,但Azure函数运行方法是异步任务,其异常处理和异步void相同。不确定哪里有问题?假设这是函数SDK问题。 Azure函数 记录器方面 解决方法:当我从Azure函数中删除异步等待并通过“getWaiter().GetResult