From 53a129784212f00a0f35b5710dd29f24df51a4b5 Mon Sep 17 00:00:00 2001 From: MistEO Date: Tue, 20 Jul 2021 23:17:26 +0800 Subject: [PATCH] update task sleep logic --- MeoAssistance/src/Assistance.cpp | 18 +++++++++++++++--- README.md | 3 +++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/MeoAssistance/src/Assistance.cpp b/MeoAssistance/src/Assistance.cpp index 5b36e88e19..452c25b6ed 100644 --- a/MeoAssistance/src/Assistance.cpp +++ b/MeoAssistance/src/Assistance.cpp @@ -141,7 +141,12 @@ void Assistance::workingProc(Assistance* pThis) DebugTraceInfo("***Matched***", matched_task, "Type:", static_cast(task.type)); if (task.pre_delay > 0) { DebugTrace("PreDelay", task.pre_delay); - std::this_thread::sleep_for(std::chrono::milliseconds(task.pre_delay)); + // std::this_thread::sleep_for(std::chrono::milliseconds(task.pre_delay)); + auto cv_ret = pThis->m_condvar.wait_for(lock, std::chrono::milliseconds(task.pre_delay), + [&]() -> bool { return !pThis->m_thread_running; }); + if (cv_ret == true) { + continue; + } } if (task.max_times != INT_MAX) { @@ -171,7 +176,12 @@ void Assistance::workingProc(Assistance* pThis) ++task.exec_times; if (task.rear_delay > 0) { DebugTrace("RearDelay", task.rear_delay); - std::this_thread::sleep_for(std::chrono::milliseconds(task.rear_delay)); + // std::this_thread::sleep_for(std::chrono::milliseconds(task.rear_delay)); + auto cv_ret = pThis->m_condvar.wait_for(lock, std::chrono::milliseconds(task.rear_delay), + [&]() -> bool { return !pThis->m_thread_running; }); + if (cv_ret == true) { + continue; + } } pThis->m_next_tasks = Configer::m_tasks[matched_task].next; } @@ -189,7 +199,9 @@ void Assistance::workingProc(Assistance* pThis) } DebugTrace("Next:", nexts_str); } - pThis->m_condvar.wait_for(lock, std::chrono::milliseconds(Configer::m_options.delayFixedTime)); + pThis->m_condvar.wait_for(lock, + std::chrono::milliseconds(Configer::m_options.delayFixedTime), + [&]() -> bool { return !pThis->m_thread_running; }); } else { pThis->m_condvar.wait(lock); diff --git a/README.md b/README.md index b0688fee73..0f3157e90b 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ MuMu是个奇葩,它的所有的窗口句柄均不响应SendMessage鼠标消 - [x] 支持自动勾选代理指挥 - [x] 支持刷指定次数 - [x] 自动吃石头(根据设置,指定数量) + - [ ] 指定刷XX个某材料 - [ ] 支持凌晨4点更新数据 - [ ] 结束界面自动截图,可用于上传企鹅物流 - [ ] 持续监视理智,一有就自动刷掉 @@ -105,6 +106,8 @@ MuMu是个奇葩,它的所有的窗口句柄均不响应SendMessage鼠标消 - [x] 更换算法为模板匹配找图,而不是当前的区域相似度对比 - [x] 优化算法效率,添加缓存功能 - [x] 优化任务队列,减少不必要的计算 + - [ ] 掉落材料计数 + - [ ] 窗口分辨率自适应 - [ ] 进一步优化任务队列效率 - [x] 其他 - [x] 尝试减小程序体积