1

在 C# 中是否有任何事件,例如每分钟的火灾和忘记???

每分钟触发一次此方法。

    public void Earning()
    {
        var data= new Bussinesslayer().Getdata();
    }
4

3 回答 3

8

您可以使用 Timer 类:
声明:

System.Timers.Timer _tmr;

初始化:

_tmr = new System.Timers.Timer();

配置:

//Assigning the method that will be called
_tmr.Elapsed += new System.Timers.ElapsedEventHandler(tmr_Elapsed);
//Setting the interval (in milliseconds):
_tmr.Interval = 1000;

启动计时器:

_tmr.Start();

该函数应具有与以下示例中相同的签名:

void tmr_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
  this.Earning();
  //please note that here you are in another thread.
}

如果要停止计时器,可以使用:

_tmr.Stop();
于 2013-06-05T04:23:35.753 回答
1

例如,使用Rx

Observable.Interval(TimeSpan.FromMinutes(1))
          .Subscribe(x => Earning());

无需穿线

于 2013-06-05T05:58:44.397 回答
0
public void Earning()
{
    var data= new Bussinesslayer().Getdata();

    // Wait a minute
    Task.Delay(TimeSpan.FromMinutes(1)).Wait();
    // Re-run this method
    Task.Factory.StartNew(() => Earning());
}

你需要这些包括:

using System;
using System.Threading.Tasks;
于 2013-06-05T05:48:44.073 回答