【发布时间】:2016-12-30 04:02:17
【问题描述】:
我正在使用 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打算异步运行,我认为它不应该处理计时器(比如停止/启动它),即使您每次运行一个任务也是如此。我想你想定期异步下载许多包,对吧?! -
这可能更适合代码审查网站。 codereview.stackexchange.com
-
@Alisson - 它必须定期检查更新,在下载时,计时器需要保持关闭,它一次只会下载一个包。
标签: c# .net visual-studio timer task-parallel-library