У меня есть метод отправки SMS-сообщений нашим клиентам, которые выглядят следующим образом:
public void ProccessSmsQueue()
{
SmsDbContext context = new SmsDbContext();
ISmsProvider provider = new ZenviaProvider();
SmsManager manager = new SmsManager(context, provider);
try
{
manager.ProcessQueue();
}
catch (Exception ex)
{
EventLog.WriteEntry(ex.Message, EventLogEntryType.Error);
}
finally
{
context.Dispose();
}
}
protected override void OnStart(string[] args)
{
Task.Factory.StartNew(DoWork).ContinueWith( ??? )
}
Итак, у меня есть некоторые проблемы:
-
Я не знаю, сколько времени требуется для запуска метода,
-
Метод может генерировать исключения, которые я хочу записать в EventLog
-
Я хочу запустить этот метод в цикле каждые 10 минут, , но только после завершения последнего завершения.
Как я могу это достичь? Я думал об использовании ContinueWith()
, но у меня все еще есть вопросы о том, как построить всю логику.