有一个功能可以用硬件密钥检查许可证。但是这个函数经常被调用并且需要时间来执行。所以为了避免过多的电话,我想在一段时间后检查许可证。
bool CheckLicense()
{
if(license checked in last 10 secconds)
{
return last status;
}
else
{
hardware access for license check
return current status
}
}
编辑:可能会删除硬件密钥,因此检查一次不是好习惯。还要调用许可证检查以启用和禁用不同的按钮状态。
答案 0 :(得分:8)
一般来说,我认为你需要这样的东西。
private DateTime lastCheckTime = DateTime.Now.AddDays(-1);
bool CheckLicense()
{
if (lastCheckTime.AddSeconds(10) < DateTime.Now)
{
return last status;
}
else
{
lastCheckTime = DateTime.Now;
// hardware access for license check
return current status
}
}
答案 1 :(得分:0)
如果您想每10秒调用一次,则可以使用以下内容:
localStorage.getItem("lastname", "Smith");
您在代码中调用一次,然后每隔10秒调用一次。
答案 2 :(得分:0)
每10秒检查一次许可证肯定会增加许多相同功能的调用。您可以在评论中建议的程序启动时执行一次,而如果您确实需要检查许可证或在每隔一段时间后调用一个函数,您实际上可以增加时间,以便您知道已检查许可证和电话会减少。
例如,您在程序启动时首次检查许可证的时间大于此时间约为10秒,然后将时间间隔增加10*2
,这将比下一次增加20 20*2
这将变为40,这将减少电话,你将每隔几次检查一次。
bool CheckLicense()
{
timelimit = 300;
if(seconds > timetocheck)
{
return last status;
timetocheck *= 2;
if(timetocheck >= timelimit)
{
timetocheck = 10;
}
}
else
{
hardware access for license check
return current status
}
}
该程序只是一个原型,并不意味着直接运行它也没有谈论数据类型和语法。这只是为了理解能力。
答案 3 :(得分:0)
如果您正在同步进行此检查。代码,您可能想要运行新线程。如果许可证存在问题,单独的线程将通过事件通知您的主线程:
{{1}}