我有一个C#console应用程序,它通常作为Windows服务安装,但也可以在console模式下运行(这不是问题的关键,只是提供上下文)。当程序启动时,它向webapi发送一个请求,请求获取有关如何配置程序的数据。如果它寻找的数据不在那里,我希望它定期ping API,以防API最终获得配置数据。
我想知道这样做的最佳做法是什么。下面是我心中的一个简单版本:
Stopwatch sw = Stopwatch.StartNew();
var response = null;
while (true)
{
// Every 60 seconds, ping API to see if it has the configuration data.
if (sw.Elapsed % TimeSpan.FromSeconds(60) == 0)
{
response = await PingApi();
if (this.ContainsConfigurationData(response))
{
break;
}
}
}
this.ConfigureProgram(response);
如果没有这些配置数据,程序中不会发生任何其他事情,所以像这样使用while循环和秒表应该没问题吧?不过,我不确定这是否是最佳做法。我也不确定我是否应该设置一个尝试次数的限制,如果达到这个限制会发生什么。我应该用秒表代替秒表吗线。睡觉?