我正在使用Windows服務來定期檢查更新。就像一兩分鐘。對於這個我使用.NET 4.6.1與這是定期進行異步下載的好代碼嗎?
- 系統定時器,&
- 任務
下面是我的代碼
/// <summary>
/// Download updates from server
/// </summary>
/// <returns></returns>
private void DownloadUpdate()
{
try
{
var package = string.Empty;
if (_server != null)
{
timer.Stop();
package = _server.Download();
if (package.Length > 0)
_server.Install(package);
}
}
finally
{
timer.Start();
}
}
/// <summary>
/// To carry out download asynchronous way
/// </summary>
private async void DowloadUpdateAsync()
{
await Task.Run(()=>DownloadUpdate());
}
只是想知道,如果它的一正確的方法來管理間隔。
我不知道您的完整方案,但我想知道你爲什麼需要這是異步。如果'DownloadUpdate'是爲了異步運行,我認爲它不應該處理計時器(就像停止/啓動它),即使你每次運行一個任務。我想你想不定期地下載很多軟件包,對嗎?! – Alisson
這可能更適合代碼評論網站。 http://codereview.stackexchange.com/ –
@Alisson - 它必須定期檢查更新,下載時,計時器需要保持關閉狀態,並且一次只下載一個軟件包。 –