gpt4 book ai didi

C#控制触发次数

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:51 25 4
gpt4 key购买 nike

我可能把这个问题复杂化了,但我一直被卡住了,我发现自己编写了非常愚蠢的解决方案来解决这个问题。

这是场景。我收到了一串数字。1,2,3,4,5,6,6,6,5,6 等等....

 private void NotifyAlert(int p)
{
EventHandler<DataEventArgs> handler = Value;
if (handler != null)
{
handler(this, new DataEventArgs(p));
}

}



if(x > 4)
{
NotifyAlert(x);
return;
}

所以发生的事情是事件触发值大于 4,然后是 5,然后是 6...等等,在我的事件处理程序中

 private static void ValueAlertHandler(object sender, DataEventArgs e)
{
lock (locker)
{
if (Convert.ToInt32(e.Message) > 4)
{

SendUpdate(e.message);
}
}
}

我想要的是它只在命中值时调用 SendUpdate() 一次,但之后的每个值都会调用它。我知道我错过了一些不确定的东西。提前谢谢大家。

编辑:澄清。我想要的是当数字超过 4 并调用 SendUpdate() 方法一次时引发的事件。然后,如果数字低于 4 并再次回到 4 以上,则调用 SendUpdate() 一次。这个过程会重复。

最佳答案

private static bool _alertedAlready = false;

private static void ValueAlertHandler(object sender, DataEventArgs e)
{
lock (locker)
{
if (Convert.ToInt32(e.Message) > 4)
{
if (!_alertedAlready)
{
SendUpdate(e.message);
_alertedAlready = true;
}
}
}
}

您可以重写它以在许多方面看起来更好,但这个想法仍然存在。您需要指示这是否是第一个警报。

关于C#控制触发次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30624300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com