gpt4 book ai didi

c# - 通过 Timer c# 控制函数调用

转载 作者:行者123 更新时间:2023-12-04 04:58:38 25 4
gpt4 key购买 nike

尽管最终用户发出请求,但仅在特定时间间隔后调用函数

public override void SendNotificationMessage(NotificationMessageRequest request)
{......}

这是我的功能,当有点击 Action 时会被触发。

我希望只在特定的时间间隔调用它,比如 5 分钟。虽然用户在时间间隔之前发出请求......

我正在尝试使用计时器来满足我的目的,但问题是每次用户单击时,计时器都会再次启动..这样计时器如何控制功能

PS:我无法在进行点击的用户应用程序中进行更改

最佳答案

首先,你应该在你的类中添加一个 Dictionnary:

Dictionnary<int, NotificationMessageRequest> _notifications

然后当用户单击按钮时,您应该执行此功能:(或更改现在执行的功能,使其看起来像这样)
private void PlanNotification(NotificationMessageRequest request, int userId)
{
// or grab the userId from where you can
lock(_notifications) // if needed ?
{
if (_notifications.Contains(userId)) return;

_notifications.Add(userId, request);
}
}

然后在您的计时器事件上调用此方法:
private void SendNotifications()
{
lock(_notifications)
{
foreach(KeyValuePair<int, NotificationMessageRequest> p in _notifications)
SendNotificationMessage(p.Value);

_notifications.Clear();
}
}

如果你或多或少地做一些类似的事情,你就会有你需要的行为。

关于c# - 通过 Timer c# 控制函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16437131/

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