Вы можете использовать Task.Delay, чтобы повторить чтение XML-файла.
Во-первых, создайте метод задания для повторного чтения XML-файла:
static async Task RepeadtReadingXml(int delayMillis, int repeatMillis, CancellationToken ct)
{
Console.WriteLine("{0}: Start reading xml file", DateTime.Now);
await Task.Delay(delayMillis, ct);
while (true)
{
Console.WriteLine("{0}: Reading xml file every 1 sec", DateTime.Now);
//***************************************************//
// Add you logic to read your xml file here //
//***************************************************//
await Task.Delay(repeatMillis, ct);
}
}
И позвоните туда, где вам нужно повторить чтение:
var cts = new CancellationTokenSource(); // Work for 5 sec
try
{
RepeadtReadingXml(2000, 1000, cts.Token).Wait();
}
catch (AggregateException ae)
{
ae.Handle(e => e is TaskCanceledException);
}