2 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
直到所有非守護(hù)線程都完成,主線程才會(huì)退出。
您可以通過執(zhí)行以下操作使計(jì)時(shí)器線程成為守護(hù)進(jìn)程:
new java.util.Timer(true).schedule(
new java.util.TimerTask() {
@Override
public void run() {
PlayerControl.MoveForward = false;
}
},
100
);
對(duì)于普通線程,可以這樣做:
Thread thread = new Thread(() -> {
...
});
thread.setDaemon(true);
thread.start();

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
就對(duì)方法的最少修改而言,類似這樣的方法可能會(huì)起作用:
new Thread(() -> {
Thread.sleep(100);
PlayerControl.MoveForward = false;
Thread.sleep(100);
PlayerControl.MoveForward = true;
}).start();
如果您希望它永遠(yuǎn)運(yùn)行,只需執(zhí)行以下操作:
new Thread(() -> {
for(;;) {
Thread.sleep(100);
PlayerControl.MoveForward = false;
Thread.sleep(100);
PlayerControl.MoveForward = true;
}
}).start();
如果要限制迭代次數(shù),只需更改for循環(huán)內(nèi)的條件即可。
您的線程方法沒有改變?nèi)魏蝺?nèi)容的原因是您從未啟動(dòng)該線程。至于為什么你的主線程掛起,這可能與你沒有在此處發(fā)布的代碼有關(guān)。
添加回答
舉報(bào)