我正在使用 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());
}
只是想知道,如果它是管理间隔的正确方法。
最佳答案
对于
async
方法,如果您不希望它返回结果,则返回Task
。见this link .Task.Run(()=>DownloadUpdate());
可以简化为Task.Run(DownloadUpdate);
我真的看不出有任何理由需要将任务包装在
async
方法中。由于DownloadUpdate
不是异步的,它无论如何都会阻塞一个线程,您需要做的就是将它作为一个Task
运行,或者直接将它排队到线程池中。
关于c# - 这是定期异步下载的好代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41390436/