java.lang.IllegalStateException:タスクはすでにスケジュールされているかキャンセルされています

ギルヘルム:

TimerTaskを起動して終了し、もう一度起動すると、このエラーが表示されます。なぜですか?このエラー:

[16:30:02] [Client thread/INFO] [MacroSK]: KEY_L
[16:30:06] [Client thread/INFO] [MacroSK]: KEY_O
[16:30:08] [Client thread/INFO] [MacroSK]: KEY_L
[16:30:08] [Client thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.fml.common.gameevent.TickEvent$ClientTickEvent@1bc14017:
java.lang.IllegalStateException: Task already scheduled or cancelled
    at java.util.Timer.sched(Unknown Source) ~[?:1.8.0_161]
    at java.util.Timer.scheduleAtFixedRate(Unknown Source) ~[?:1.8.0_161]
    at com.skelletonx.MacroSK.handler.KeybindHandler.Shopmsg(KeybindHandler.java:53) ~[KeybindHandler.class:?]
    at com.skelletonx.MacroSK.handler.KeybindHandler.onTickEvent(KeybindHandler.java:63) ~[KeybindHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_KeybindHandler_onTickEvent_ClientTickEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:55) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:140) [EventBus.class:?]
    at net.minecraftforge.fml.common.FMLCommonHandler.onPostClientTick(FMLCommonHandler.java:371) [FMLCommonHandler.class:?]
    at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:2152) [bsu.class:?]
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1028) [bsu.class:?]
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:345) [bsu.class:?]
    at net.minecraft.client.main.Main.main(SourceFile:120) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]

私のコード:

Timer timer = new Timer();
final TimerTask ts = new TimerTask(){
      @Override
      public void run() {
          Minecraft.getMinecraft().thePlayer.sendChatMessage(Ini.getIni("Loja"));
      }
    };
int delaymsg = Integer.parseInt(Ini.getIni("DelayL"));
public void Shopmsg() {
    timer.scheduleAtFixedRate(ts,1000*delaymsg,1000*delaymsg);
}

@SideOnly(Side.CLIENT)
@SubscribeEvent(priority=EventPriority.NORMAL, receiveCanceled=true)
public void onTickEvent(TickEvent.ClientTickEvent event) {
    if(event.phase == TickEvent.Phase.END) {
        if (mc.inGameHasFocus) {
            if (keyBindings[0].isPressed()) {
                LogHelper.info("KEY_L");
                Shopmsg();
            }
            if(keyBindings[1].isPressed()) {
                LogHelper.info("KEY_O");
                 ts.cancel();

            }
        }
    }
} 

TaskTimeが終了したら、どうすれば再開できますか?タスクタイムを停止、停止、再開しない場合、一時停止して再開できますか?

df778899:

TimerTaskTimer一度にしかスケジュールできません

での作業を続けるとTimer、でTimerTask ts毎回新しいを再作成する必要がありますShopMsg()

それTimerScheduledExecutorService最近は取って代わられていますが、それ言うに値しますこれは一般により柔軟です...

たとえば、(の代わりにTimerエグゼキュータを作成するには

    ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);

次に、ループをスケジュールします。

    ScheduledFuture<?> future = scheduledExecutorService.scheduleAtFixedRate(
            () -> Minecraft.getMinecraft().thePlayer.sendChatMessage(Ini.getIni("Loja")),
            delaymsg, 
            delaymsg, 
            TimeUnit.SECONDS);

そして、そのスケジュールを停止するには:

    future.cancel(false);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「java.lang.IllegalStateException:タスクを実行できません:タスクはすでに実行されています」というメッセージが表示されるのはなぜですか?

分類Dev

原因:java.lang.IllegalStateException:パッケージがインストールされていませんか?

分類Dev

スレッド「main」の例外java.lang.IllegalStateException:ストリームはすでに操作されているか閉じられています

分類Dev

Jacoco mavenプラグインが例外でコンソールを詰まらせる-java.lang.IllegalStateException:クラスはすでにインストルメント化されています

分類Dev

java.lang.objectに保存されているデータにアクセスするにはどうすればよいですか?

分類Dev

java.lang.IllegalStateException: getAttributeNames: セッションは Spring セキュリティ HttpSessionDestroyedEvent ですでに無効化されています

分類Dev

このjava.lang.IllegalStateExceptionに直面しています:Parcelableを実装するModelクラスでは、バンドルの長さが4:9で整列されていません

分類Dev

1億3000万行のBigtableスキャンはjava.lang.IllegalStateExceptionをスローします:開始されていません

分類Dev

java.lang.IllegalStateException:BeanFactoryが初期化されていないか、すでに閉じられています-ApplicationContextを介してBeanにアクセスする前に 'refresh'を呼び出してください

分類Dev

予期しないAOPの例外。ネストされた例外はjava.lang.IllegalStateExceptionです:ロード・キャッシュ項目にできません。

分類Dev

原因:java.lang.IllegalStateException:ParsePluginsはすでに初期化されています

分類Dev

java.lang.IllegalStateException:すでに追加されているフラグメント

分類Dev

java.lang.IllegalStateExceptionの解決策はありますか:返信はすでに送信されています

分類Dev

スケジュールされたタスクで予期しないエラーが発生しました。java.lang.OutOfMemoryError:Javaヒープスペース

分類Dev

java.lang.IllegalArgumentException:指定されたJWTがデジタル署名されている場合は、署名キーを指定する必要があります

分類Dev

java.lang.IllegalStateException:RingtoneServiceの実行中にサービスインテントを開始することは許可されていません

分類Dev

フィルターチェーンに関するGlassFishの問題:java.lang.IllegalStateException:PWC3990:getWriter()はこの応答に対してすでに呼び出されています

分類Dev

java.lang.IllegalStateException:ViewPagerがバインドされていません(JakeWharton ViewPagerインジケーターを使用)

分類Dev

java.lang.IllegalStateException:setDoOutputですでに接続されています

分類Dev

java.lang.IllegalStateException:setDoOutputですでに接続されています

分類Dev

報告されていない例外java.lang.Exception; キャッチされるか、スローされるように宣言されている

分類Dev

Android java.lang.IllegalStateException:フラグメントはすでに追加されています

分類Dev

java.lang.IllegalStateException:フラグメントはすでに追加されています:MovieFragment

分類Dev

Javaで動的スケジューリングジョブをトリガーしてキャンセルするにはどうすればよいですか?

分類Dev

java.lang.IllegalStateException:すでに接続されています(Discord JDA)

分類Dev

java.lang.IllegalThreadStateException:スレッドはすでに開始されています

分類Dev

例外:java.lang.RuntimeException:キャンバス:リサイクルされたビットマップを使用しようとしています

分類Dev

エラー:java.lang.IllegalStateException:「XmlToolsFactory」のインスタンスが登録されていません

分類Dev

Javaでキャンセル可能なスケジュールされたタスクを実行する方法

Related 関連記事

  1. 1

    「java.lang.IllegalStateException:タスクを実行できません:タスクはすでに実行されています」というメッセージが表示されるのはなぜですか?

  2. 2

    原因:java.lang.IllegalStateException:パッケージがインストールされていませんか?

  3. 3

    スレッド「main」の例外java.lang.IllegalStateException:ストリームはすでに操作されているか閉じられています

  4. 4

    Jacoco mavenプラグインが例外でコンソールを詰まらせる-java.lang.IllegalStateException:クラスはすでにインストルメント化されています

  5. 5

    java.lang.objectに保存されているデータにアクセスするにはどうすればよいですか?

  6. 6

    java.lang.IllegalStateException: getAttributeNames: セッションは Spring セキュリティ HttpSessionDestroyedEvent ですでに無効化されています

  7. 7

    このjava.lang.IllegalStateExceptionに直面しています:Parcelableを実装するModelクラスでは、バンドルの長さが4:9で整列されていません

  8. 8

    1億3000万行のBigtableスキャンはjava.lang.IllegalStateExceptionをスローします:開始されていません

  9. 9

    java.lang.IllegalStateException:BeanFactoryが初期化されていないか、すでに閉じられています-ApplicationContextを介してBeanにアクセスする前に 'refresh'を呼び出してください

  10. 10

    予期しないAOPの例外。ネストされた例外はjava.lang.IllegalStateExceptionです:ロード・キャッシュ項目にできません。

  11. 11

    原因:java.lang.IllegalStateException:ParsePluginsはすでに初期化されています

  12. 12

    java.lang.IllegalStateException:すでに追加されているフラグメント

  13. 13

    java.lang.IllegalStateExceptionの解決策はありますか:返信はすでに送信されています

  14. 14

    スケジュールされたタスクで予期しないエラーが発生しました。java.lang.OutOfMemoryError:Javaヒープスペース

  15. 15

    java.lang.IllegalArgumentException:指定されたJWTがデジタル署名されている場合は、署名キーを指定する必要があります

  16. 16

    java.lang.IllegalStateException:RingtoneServiceの実行中にサービスインテントを開始することは許可されていません

  17. 17

    フィルターチェーンに関するGlassFishの問題:java.lang.IllegalStateException:PWC3990:getWriter()はこの応答に対してすでに呼び出されています

  18. 18

    java.lang.IllegalStateException:ViewPagerがバインドされていません(JakeWharton ViewPagerインジケーターを使用)

  19. 19

    java.lang.IllegalStateException:setDoOutputですでに接続されています

  20. 20

    java.lang.IllegalStateException:setDoOutputですでに接続されています

  21. 21

    報告されていない例外java.lang.Exception; キャッチされるか、スローされるように宣言されている

  22. 22

    Android java.lang.IllegalStateException:フラグメントはすでに追加されています

  23. 23

    java.lang.IllegalStateException:フラグメントはすでに追加されています:MovieFragment

  24. 24

    Javaで動的スケジューリングジョブをトリガーしてキャンセルするにはどうすればよいですか?

  25. 25

    java.lang.IllegalStateException:すでに接続されています(Discord JDA)

  26. 26

    java.lang.IllegalThreadStateException:スレッドはすでに開始されています

  27. 27

    例外:java.lang.RuntimeException:キャンバス:リサイクルされたビットマップを使用しようとしています

  28. 28

    エラー:java.lang.IllegalStateException:「XmlToolsFactory」のインスタンスが登録されていません

  29. 29

    Javaでキャンセル可能なスケジュールされたタスクを実行する方法

ホットタグ

アーカイブ