C#循环单次函数

C#循环单次函数,c#,function,loops,skip,C#,Function,Loops,Skip,我这里的情况很有趣。语言是C#,使用Visual Studio 我有一个函数循环,它将继续运行 当某个事件触发时,我希望使用IF语句调用函数 有没有办法让这个函数在一定的时间延迟下不再被调用 例如,函数A被调用……无论在接下来的20秒内发生什么,函数A都不能被调用 20秒后,如果if语句存在,则可以再次调用函数A 我有一个功能,就是发短信给我的手机,目前我的循环速度非常快,所以它能在几秒钟内发20次短信给我的手机。我想限制这一点。 我也不能让事件触发while循环以使其通过另一个循环 我需要循环

我这里的情况很有趣。语言是C#,使用Visual Studio

我有一个函数循环,它将继续运行

当某个事件触发时,我希望使用IF语句调用函数

有没有办法让这个函数在一定的时间延迟下不再被调用

例如,函数A被调用……无论在接下来的20秒内发生什么,函数A都不能被调用

20秒后,如果if语句存在,则可以再次调用函数A

我有一个功能,就是发短信给我的手机,目前我的循环速度非常快,所以它能在几秒钟内发20次短信给我的手机。我想限制这一点。 我也不能让事件触发while循环以使其通过另一个循环

我需要循环保持循环运行,但在特定时间过去之前,跳过发送手机短信的功能。

使用计时器:

Timer myTimer = new Timer();
 myTimer.Interval = 200; //double timer interval in ms
 myTimer.Elapsed += myTimer_Elapsed;
 myTimer.Start();
然后将函数放入myTimer\u中:

void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        your_function();
    }

使用myTimer.Stop()停止它

在代码中向我们展示您的尝试?这是一个完美的初学者任务。我想问题比我最初描述的要深一点。触发函数A的事件接近循环的开始。因此,如果我只是在循环开始时使用一个INT赋值,这个INT会被重置。我的代码有敏感信息,所以很难简单地复制和粘贴它。我主要是在寻找一个内置的库,它可以通过.Tick命令或其他东西来处理这个问题。它是一个带有if语句的单循环,没有什么敏感或复杂的地方。只需使用
TimeSpan
if(ts.elapsedmillesons>delay)函数()定义一个静态变量来保存上次发送消息的日期和时间。修改“发送消息”函数,以便在发送任何内容之前检查此变量。发送消息后,请更新变量。如果您的问题已通过此答案解决,请标记为答案。谢谢