相关疑难解决方法(0)

.NET,事件每分钟(分钟).计时器是最好的选择吗?

我希望使用c#在Windows窗体应用程序中按分钟(按时钟)每分钟做一些事情.我只是想知道最好的方法是什么?

我可以使用一个计时器并将其间隔设置为60000,但为了让它在一分钟内运行,我必须准确地启用它,而不是真的可行.

我可以使用一个计时器并将其间隔设置为1000.然后在其tick事件中,我可以根据我设置的变量检查当前时钟,如果分钟已经改变,则运行我的代码.这让我很担心,因为我让我的电脑每1秒做一次检查,以便每1分钟进行一次工作.当然这很难看?

我正在使用Windows窗体和.Net 2.0,因此不想使用.Net 3.5附带的DispatchTimer

这一定是一个相当普遍的问题.你有没有更好的方法来做到这一点?

c# timer system.reactive

39
推荐指数
7
解决办法
6万
查看次数

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

我需要从C#Web应用程序向服务发布一些数据.用户使用应用程序时会收集数据本身(一种使用情况统计信息).我不希望在每个用户的请求期间向服务发送数据,我宁愿在应用程序中收集数据,然后在一个单独的线程中发送单个请求中的所有数据,这不会满足用户的请求(我的意思是用户不必等待服务处理请求).为此,我需要一种JS的setInterval模拟 - 每隔X秒启动一次函数,将所有收集的数据刷新到服务中.

我发现Timer该类提供了一些类似的(Elapsed事件).但是,这允许只运行一次方法,但这不是一个大问题.它的主要困难是需要签名

void MethodName(object e, ElapsedEventArgs args)
Run Code Online (Sandbox Code Playgroud)

虽然我想启动异步方法,它将调用web服务(输入参数并不重要):

async Task MethodName(object e, ElapsedEventArgs args)
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议如何解决所描述的任务?任何提示赞赏.

.net c# asp.net multithreading async-await

16
推荐指数
3
解决办法
3万
查看次数