Преглед изворни кода

#IQRV #comment fix : be consistent with windows,vtmloader update token every 20s

陈良瑜80374463 пре 1 година
родитељ
комит
5ae191eed6
1 измењених фајлова са 20 додато и 2 уклоњено
  1. 20 2
      Module/mod_vtmloader/VtmLoaderFSM.cpp

+ 20 - 2
Module/mod_vtmloader/VtmLoaderFSM.cpp

@@ -62,13 +62,31 @@ struct callback_entry : public IReleasable
 DWORD tokenUpdate(void* param)
 {
 	CVtmLoaderFSM* t_entity = (CVtmLoaderFSM*)param;
+	DWORD lastUpdateTime = 0; // 获取当前时间(以毫秒为单位)
+
 	while (true)
 	{
+		DWORD currentTime = GetTickCount(); // 获取当前时间
+		DWORD elapsedTime = currentTime - lastUpdateTime; // 计算与上次更新的时间间隔(毫秒)
+
+		if (elapsedTime >= (t_entity->m_refreshWaitSec * 1000))
+		{
+			// 如果距离上次更新时间已经超过了指定的刷新间隔
 		if (t_entity->refreshToken())
-			Sleep(t_entity->m_refreshWaitSec * 1000);
+			{
+				// 更新成功,更新上次更新时间
+				lastUpdateTime = currentTime;
+			}
 		else
-			Sleep(20 * 1000);
+			{
+				// 更新失败,可以处理一些错误逻辑
 	}
+		}
+
+		// 等待一段时间后再次检查
+		Sleep(20000); // 20秒
+	}
+
 	return 0;
 }
 DWORD checkUrlActive(LPVOID param)