如何在C#中添加3秒延迟

本文关键字:添加 3秒 延迟 | 更新日期: 2023-09-27 18:16:31

我刚开始编写c#,我正在为我的discord服务器制作一个Bot。我最近添加了一个命令!meme,它会从大约100张不同的图片中随机抽取,发送到聊天中。当我执行这个命令的那一刻,每个人都完全滥用了它,因为!模因垃圾邮件。

我希望能够在命令本身可以再次使用之前添加3秒的延迟。我尝试使用Thread.Sleep(3000);,但没有成功。与相同等待我在异步中使用的Task.Delay(3000);

       private void RegisterMemeCommand()
    {
        commands.CreateCommand("Meme")
            .Do(async (e) =>
            {
                int RandomMeme = rng.Next(MemeList.Length);
                string memetopost = MemeList[RandomMeme];
                await e.Channel.SendFile(memetopost);
            });
    }

如何在C#中添加3秒延迟

由于我没有完整的代码,根据您的问题,请尝试以下操作:

var lastSentOn=DateTime.MinValue;
commands.CreateCommand("Meme")
.Do(async (e) =>
{
    if((DateTime.Now - lastSentOn).TotalSeconds > 3)
    { 
        int RandomMeme = rng.Next(MemeList.Length);
        string memetopost = MemeList[RandomMeme];
        lastSentOn = DateTime.Now;
        await e.Channel.SendFile(memetopost);
    }
});

您可能需要将lastSentOn与一些用户id等相关联。在这种情况下,字典会很有帮助。