我到处寻找这个但是我仍然坚持过去几天。我有一个服务,用于每5分钟后调用一个方法
public Service1()
{
InitializeComponent();
}
private Timer _timer;
protected override void OnStart(string[] args)
{
_timer = new Timer(5*60*1000);
_timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed);
_timer.AutoReset = true;
_timer.Start();
}
private void OnTimerElapsed(object sender, ElapsedEventArgs e)
{
var FuncFlag = false;
_timer.Stop();
send_email("Going To Call API MEthod");
FuncFlag = Authorization();
_timer.Start();
if (!FuncFlag)
{
send_email("Service Failure for Authorization");
}
}
public static bool Authorization()
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://**.**.**.**:****/");
HttpResponseMessage response = client.GetAsync("api/values/checkauthorization/).Result;
if (response.IsSuccessStatusCode)
{
send_email("Response Success");
return true;
}
else
{
send_email("Response Failed");
return false;
}
}
protected override void OnStop()
{
_timer.Stop();
_timer.Dispose();
}
}
在方法上我需要获取一些值以将它们存储在DB中。我只想每隔5分钟调用一次这种方法,如果我错过了任何内容,请帮助我,或者让我知道是否有更好的方法来实现这一目标。