diff options
author | James C. Norris <jnorris@gmail.com> | 2016-10-27 08:27:36 +0300 |
---|---|---|
committer | James C. Norris <jnorris@gmail.com> | 2016-10-27 08:27:36 +0300 |
commit | c439f261300c13786094a164936efe9991ab6c06 (patch) | |
tree | a53992a4c05f2d97fea67473368c0eb22d8c44c4 /windirstat/windirstat.cpp | |
parent | f1a5430b9467ff766f8a742ead1b410676c6da1d (diff) |
Add a class CWorkLimiter that isolates limiting work duration
CWorkLimiter limits the amount of work done on any idle cycle, exiting when a set amount of ticks has elapsed or when an input event is pending on the message queue.
Diffstat (limited to 'windirstat/windirstat.cpp')
-rw-r--r-- | windirstat/windirstat.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/windirstat/windirstat.cpp b/windirstat/windirstat.cpp index edc9df6..b62289c 100644 --- a/windirstat/windirstat.cpp +++ b/windirstat/windirstat.cpp @@ -29,6 +29,7 @@ #include "dirstatdoc.h"
#include "graphview.h"
#include "osspecific.h"
+#include "WorkLimiter.h"
#include <Dbghelp.h> // for mini dumps
#ifdef _DEBUG
@@ -737,7 +738,9 @@ BOOL CDirstatApp::OnIdle(LONG lCount) bool more = false;
CDirstatDoc *doc = GetDocument();
- if((doc) && (!doc->Work(600)))
+ CWorkLimiter limiter;
+ limiter.Start(600);
+ if((doc) && (!doc->Work(&limiter)))
{
more = true;
}
|