如何在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);
});
}
由于我没有完整的代码,根据您的问题,请尝试以下操作:
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等相关联。在这种情况下,字典会很有帮助。