仅在经过一段时间后执行某些操作

本文关键字:操作 执行 经过 一段时间 | 更新日期: 2023-09-27 18:08:57

这对我来说有点难以解释,但是看:

我做了一个MMORPG服务器启动器,它有一个开始按钮,当你点击它时,会弹出一个小窗口,要求你为服务器投票,然后你可以再次点击开始启动游戏(在你真正开始游戏之前有10秒的倒计时)

唯一的问题是投票网站每12小时只接受用户的投票(基于IP和cookie),在有人投票一次后,每次你想开始游戏时都有一个小窗口弹出并等待,这有点烦人。

我的想法是:当有人点击打开投票窗口时,他的系统日期和确切时间就会被写入一个文件中。

之后,每次你点击开始启动器读取日期和时间,并计算如果12小时已经过去了,因为你上次投票,如果是,它会要求你再次投票,如果不是,它会跳过这部分,直接开始游戏。

我不是很有经验,我不知道从哪里开始,如何使这个工作,你的帮助是非常感谢的。

谢谢!

如果可以的话,这是我的活动。

    private void btnStart_Click(object sender, EventArgs e)
    {
        var voteForm = new VoteWindow();
        voteForm.Show();
        voteForm.BringToFront();
        this.Enabled = false;
    }

这是我实际启动游戏的代码。

    private void btnStart2_Click(object sender, EventArgs e)
    {
        string error1 = "Deleted because it was too long...";
        string title1 = "Deleted because it was too long...";
        if (File.Exists("engine.exe"))
        {
            Process.Start("engine.exe", "/load /config debug");
            Application.Exit();
        }
        else
        {
            MessageBox.Show(error1, title1, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

仅在经过一段时间后执行某些操作

只用Properties.Settings。您可以通过进入Solution Explorer创建一个新设置,然后展开Properties并打开Settings.Settings。在这个页面上,你可以创建一个新的System.DateTime对象。然后你会做这样的事情。

private void btnStart_Click(object sender, EventArgs e)
{
    TimeSpan ts = DateTime.Now - Properties.Settings.Default.MySetting;
    if (ts.TotalHours > 12)
    {
        Properties.Settings.Default.MySetting = DateTime.Now;
        Properties.Settings.Default.Save();
        var voteForm = new VoteWindow();
        voteForm.Show();
        voteForm.BringToFront();
        this.Enabled = false;
    }
}