如何进行多个独立的异步任务

时间:2019-06-10 00:25:16

标签: java android

我有一个暂停例程,需要多次调用。即两次调用一次,一次持续5秒,一次一次持续10秒。

无论如何,如果我尝试同时调用两次,只会得到更长的响应。就像只有一个线程正在创建和管理。

简而言之,如何使该例程处理多个请求并管理多个线程。

我试图将例程移至该类的更高部分,并尝试添加一个可识别的线程字符串。

我确实认为我在这里错过了一些东西。无法正确创建和跟踪线程。

    AsynchUtil.runAsynchronously(new Runnable() {


        class DelayCall implements Runnable {
            DelayCall(String pauseName) {
                threadName=pauseName;
            }

            public void run() {
                PauseMagic.this.CallFinishedWithResult(threadName);
            }
        }

        public void run() {
            try {
                Thread.sleep((long) delay2);
                PauseMagic.this.form.runOnUiThread(new DelayCall(threadName));
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    });
}

    public void CallAfterDelay(final String pauseName, final int timeUnits, final int delay) {
        if(timeUnits==1) delay2=(delay*1000);
        if(timeUnits==2) delay2=((delay*60)*1000);
        threadName=pauseName;
        StartPause(threadName);

    }

    public void CallFinishedWithResult(String pauseName) {
        EventDispatcher.dispatchEvent(this, "CallFinishedWithResult", new Object[]{pauseName});
    }


}

我希望能够从CallAfterDelay多次调用StartPause(),并创建独立的线程。因此,当我触发CallFinsihedWithResult时,我要做的就是测试暂停动作的名称。

0 个答案:

没有答案