簡體   English   中英

如何使可運行的提前終止

[英]How to make a runnable terminate early

我有一個可運行的代碼,下面的代碼,只要在10秒鍾內調用它,它就應該執行任何操作。

CoresManager.slowExecutor.schedule(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            if (isAtWildSafe()) {
                                player.sm("This area is now safe for you.");
                                player.setCanPvp(false);
                                player.safeWait = false;
                                removeIcon();
                            }
                        } catch (Throwable e) {
                            Logger.handle(e);
                        }
                    }
                }, 10, TimeUnit.SECONDS);

但是,可以說5秒鍾過去了,我想取消可運行對象,然后再執行操作。 我如何在不取消所有活動可運行對象的情況下實現這一目標。

schedule(...)方法應返回一個Future對象。 Future API具有cancel(...)方法。

因此,要實現您要執行的操作:將Future對象保存在某個位置,然后在5秒鍾后對其調用cancel 請注意,可以取消已經運行的將來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM