これはシンプルデイリートリガークラスで、私はこの関数を - >( "DailyTrigger(int hour、int minute、int second = 0)")と呼んでいます。 それが次回働い初めて(Task.delayを使用して)エラー非同期メソッドエラーhelp me
public class DailyTrigger
{
readonly TimeSpan triggerHour;
public DailyTrigger(int hour, int minute , int second = 0)
{
triggerHour = new TimeSpan(hour, minute, second);
InitiateAsync();
}
async void InitiateAsync()
{
while (true)
{
var triggerTime = DateTime.Today + triggerHour - DateTime.Now;
if (triggerTime < TimeSpan.Zero)
triggerTime = triggerTime.Add(new TimeSpan(0,2,0));
await Task.Delay(triggerTime);
OnTimeTriggered?.Invoke();
}
}
コントローラ中からコール
var trigger = new DailyTrigger(13,01);
trigger.OnTimeTriggered +=() =>
{
var res = AanModel.GetById<Company_Priority>(prio_obj.id);
res.version = "5";
res.Create();
};
というエラー
"An asynchronous module or handler completed while an asynchronous operation was still pending"
ここでは何を達成しようとしていますか?何らかの種類のスケジュールされたタスクを実装している場合は、このようにすることはできません。 – Euphoric
これは[tag:asp.net]コンテキストにある場合、[ASP.NETでバックグラウンドタスクを実行する方法](https://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx) –