Sys增加设定任务周期的方法
This commit is contained in:
parent
547e0759fd
commit
65d18e8727
11
Sys.cpp
11
Sys.cpp
|
@ -574,6 +574,17 @@ bool TSys::SetTask(uint taskid, bool enable, int usNextTime)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 改变任务周期
|
||||||
|
bool TSys::SetTaskPeriod(uint taskid, Int64 period)
|
||||||
|
{
|
||||||
|
Task* task = Task::Get(taskid);
|
||||||
|
if(!task) return false;
|
||||||
|
|
||||||
|
task->Period = period;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void TSys::Start()
|
void TSys::Start()
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|
2
Sys.h
2
Sys.h
|
@ -130,6 +130,8 @@ public:
|
||||||
void RemoveTask(uint taskid);
|
void RemoveTask(uint taskid);
|
||||||
// 设置任务的开关状态,同时运行指定任务最近一次调度的时间,0表示马上调度
|
// 设置任务的开关状态,同时运行指定任务最近一次调度的时间,0表示马上调度
|
||||||
bool SetTask(uint taskid, bool enable, int usNextTime = -1);
|
bool SetTask(uint taskid, bool enable, int usNextTime = -1);
|
||||||
|
// 改变任务周期
|
||||||
|
bool SetTaskPeriod(uint taskid, Int64 period);
|
||||||
void Start(); // 开始系统大循环
|
void Start(); // 开始系统大循环
|
||||||
Func OnStart;
|
Func OnStart;
|
||||||
};
|
};
|
||||||
|
|
|
@ -279,10 +279,9 @@ bool TinyClient::OnJoin(TinyMessage& msg)
|
||||||
Password.Show(true);
|
Password.Show(true);
|
||||||
|
|
||||||
// 取消Join任务,启动Ping任务
|
// 取消Join任务,启动Ping任务
|
||||||
Task* task = Task::Get(_TaskID);
|
|
||||||
ushort time = Config.PingTime;
|
ushort time = Config.PingTime;
|
||||||
if(time < 5) time = 5;
|
if(time < 5) time = 5;
|
||||||
task->Period = time * 1000000;
|
Sys.SetTaskPeriod(_TaskID, time * 1000000);
|
||||||
|
|
||||||
// 组网成功更新一次最后活跃时间
|
// 组网成功更新一次最后活跃时间
|
||||||
LastActive = Time.Current();
|
LastActive = Time.Current();
|
||||||
|
@ -307,8 +306,7 @@ void TinyClient::Ping()
|
||||||
|
|
||||||
debug_printf("%d 秒无法联系,服务端可能已经掉线,重启Join任务,关闭Ping任务\r\n", off);
|
debug_printf("%d 秒无法联系,服务端可能已经掉线,重启Join任务,关闭Ping任务\r\n", off);
|
||||||
|
|
||||||
Task* task = Task::Get(_TaskID);
|
Sys.SetTaskPeriod(_TaskID, 5000000);
|
||||||
task->Period = 5000000;
|
|
||||||
|
|
||||||
Server = 0;
|
Server = 0;
|
||||||
Password = 0;
|
Password = 0;
|
||||||
|
|
Loading…
Reference in New Issue