Я хочу запустить длительный процесс в службе windows асинхронно - и опросить процесс каждые 3 секунды и сообщить об этом с помощью SignalR. Нижеприведенный код (теоретически) сделает это на основе событий, но я не хочу увольнять прогресс с каждым изменением..NET 4.5 Пример выполнения опроса Пожалуйста,
Может ли кто-нибудь предоставить простой пример того, как реализовать это специально, чтобы начать процесс и выполнить опрос/отчет. Пожалуйста, имейте в виду, что я не работал полностью на протяжении нескольких лет!
public async Task<string> StartTask(int delay)
{
var tokenSource = new CancellationTokenSource();
var progress = new Progress<Tuple<Int32, Int32>>();
progress.ProgressChanged += (s, e) =>
{
r2hProcessesProxy.Invoke("DownloadNotify", string.Format("Major={0} - Minor={1}", e.Item1 , e.Item2 ));
};
var task = DownloadTask.DoDownload(delay, tokenSource.Token, new Progress<Tuple<Int32,Int32>>(p => new Tuple<Int32, Int32>(0,0)));
await task;
return "Task result";
}
SignalR имеет встроенную поддержку для '' IProgress если это проще ... –
К сожалению - да она использует signalR, но я хотите опросить асинхронный процесс, а не нажимать каждый раз отчет о ходе работы с объекта задачи async. –
Я просто не уверен, как реализовать опрос на этой странице https://msdn.microsoft.com/en-us/library/hh873177(v=vs.110).aspx –