再次执行动作之前的计时器

时间:2014-07-23 14:54:34

标签: java multithreading timer

在switch语句中,我有一个案例,表示游戏中的注销按钮。问题是如果玩家反复点击它反复执行c.logout()方法会再次导致游戏中出现大量延迟。我想在播放器再次点击按钮之前添加一个计时器。我对线程和计时器都很陌生,所以我真的很感激这方面的一些帮助。特别是如果你能解释一下。非常感谢。

这是我的代码

    case 9154: // Logout Button
        c.logout();
        break;

感谢Ryan解决方案

只需创建一个简单的布尔值来跟踪登录状态。

case 9154: // Logout Button
    if (loggedIn) {
        loggedIn = false;
        c.logout();
    }
    break;

2 个答案:

答案 0 :(得分:1)

您可以保留其状态变量:

case 9154: // Logout Button
    if (loggedIn) {
        loggedIn = false;
        c.logout();
    }
    break;

然后在登录时将loggedIn设置为true。

答案 1 :(得分:0)

您可以不必启动新线程,只需使用锁定来防止两次调用注销。

以谷歌的第一个结果为例:

http://tutorials.jenkov.com/java-concurrency/locks.html