java - 长时间作业时如何防止结冰

标签 java android

在 VB.NET 中我可以执行这样的代码:

Sub Compute(sender As Object, e As EventArgs) Handle btnCompute.Click
 For i = 0 to IterationLimit
  ' Do something
  Applicaton.DoEvents()
 Next
End Sub

一次迭代运行大约 50 毫秒,但整个方法运行大约 5 分钟。 “Appliction.DoEvents()”允许系统正确刷新表单并允许用户执行操作(按取消按钮、敲击热键等)。我如何才能像 Android 中的 java 那样?

最佳答案

如果您希望 UI 和其他组件在运行时保持响应,则需要在线程中运行代码。

请参阅此文档,了解如何从线程运行方法的非常简单明了的示例:https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html

基本上你想扩展Thread类:

public class MyThread extends Thread {
    public void run() {
        //do some background work
        //put whatever you want your thread to do here
    }
}

并这样调用它:

new MyThread().start();

关于java - 长时间作业时如何防止结冰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38338820/

相关文章:

android - 如何在 AndroidX 上使用该库?

java - 如何才能比 WorkManager 的 15 分钟上限更快地轮询设备以获取位置数据?

java - Java 中网络断开不会抛出 IOException

java - 如何从字符串中删除一个字符?

java - 在 Java 中停止循环线程

Java/安卓。如何获取 Google Chrome 中打开的选项卡的列表 URL?

java - Android Studio 1.5.1 重复文件复制到 APK META-INF/NOTICE.txt commons-codec-1.9.jar ...?

android - 从 Android 向 node.js 服务器发送带有 JSON 的 POST 请求

java - 没有抛出抽象方法未实现的错误

java - 带有访问者类的空指针