-1
私はASP.NET5アプリケーションを開発しており、特定の遅延の後にサーバー上でイベントをトリガーしたいと思っています。私はまた、クライアントがイベントの実行をキャンセルするためにサーバーに要求を送信できるようにしたい。 Timer
を保存するにはどうすればいいですか。Change(Timeout.Infinite, Timeout.Infinite)
に電話して別のリクエストでキャンセルできますか?特定の遅延の後にサーバー上でイベントを発生させる
public class ApiController : Controller
{
public IActionResult SetTimer()
{
TimerCallback callback = new TimerCallback(EventToRaise);
Timer t = new Timer(callback, null, 10000, Timeout.Infinite);
//I need to persist Timer instance somehow in order to cancel the event later
return HttpOkObjectResult(timerId);
}
public IActionResult CancelTimer(int timerId)
{
/*
here I want to get the timer instance
and call Change(Timeout.Infinite, Timeout.Infinite)
in order to cancel the event
*/
return HttpOkResult();
}
private void EventToRaise(object obj)
{
///..
}
}
私は
EventToRaise
の実行を遅らせるためにSystem.Threading.Timerを使用しています
、私のアプローチは正しいですか、私はそれにいくつかの他の方法を行う必要があります ?それを達成する最良の方法は何ですか?
=> http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx – CodeNotFound
@CodeNotFoundこれを読みます、ありがとう、私は記事で推奨されるように私はHangfireを使用すると思います。 – koryakinp