定期以指定的间隔运行异步方法

14 浏览
0 Comments

定期以指定的间隔运行异步方法

我需要将一些数据从C# Web应用程序发布到服务中。这些数据是用户在使用该应用程序时收集的(一种使用统计数据)。我不想在每个用户请求时将数据发送到服务,我宁愿在应用程序中收集数据,然后在单独的线程中发送所有数据的单个请求(这个线程不用来处理用户请求,我是指用户不必等待请求被服务处理)。为此,我需要一种类似于JS的setInterval的机制 - 每隔X秒启动一次函数,将所有收集到的数据刷新到服务中。

我发现Timer类提供了类似的功能(Elapsed事件)。然而,它只允许运行方法一次,但这不是一个大问题。主要困难在于它要求方法的签名为:

void MethodName(object e, ElapsedEventArgs args)

而我想要启动异步方法,该方法将调用 Web 服务(输入参数不重要):

async Task MethodName(object e, ElapsedEventArgs args)

有人能给出如何解决这个描述的任务的建议吗?任何提示都将不胜感激。

0