C# C语言中的同步定时器回调#

C# C语言中的同步定时器回调#,c#,timer,periodic-processing,C#,Timer,Periodic Processing,我想创建一个定期调用的函数(1秒),该函数可能需要1秒以上的时间。如果函数未完成,则不应创建新线程。如果完成,应该等到适当的时候。在C#?中,使用Microsoft的反应式扩展(NuGet“Rx Main”)哪种计时器方法是最好的解决方案?您可以这样做: Observable .Interval(TimeSpan.FromSeconds(1.0)) .Subscribe(n => { /* Do work here */ }); 它会等待订

我想创建一个定期调用的函数(1秒),该函数可能需要1秒以上的时间。如果函数未完成,则不应创建新线程。如果完成,应该等到适当的时候。在C#?

中,使用Microsoft的反应式扩展(NuGet“Rx Main”)哪种计时器方法是最好的解决方案?您可以这样做:

Observable
    .Interval(TimeSpan.FromSeconds(1.0))
    .Subscribe(n =>
    {
        /* Do work here */
    });

它会等待订阅调用之间的间隔。

无论另一个线程是否已完成,它都不会运行吗?@Rariolu-不,它不是
计时器,而是
间隔。它等待运行每个订阅之间的间隔。
Observable
    .Interval(TimeSpan.FromSeconds(1.0))
    .Subscribe(n =>
    {
        /* Do work here */
    });