jwcolby
jwcolby at colbyconsulting.com
Wed Apr 4 19:51:03 CDT 2012
>> Care to share the code that worked for you? LOL. Sure. I am finishing up troubleshooting / debugging my RunState class. I had this class encapsulating a thread and delegates as well as delegates for sinking and handling check boxes and labels. The objective was to have an encapsulated class which handled a check box or button which the user (me) could check to start a process / uncheck to stop a process. That was working just fine, the thread would run whatever process code needed to run in a while loop - While (RunState - runState.Started) { Do whatever needed doing thread.sleep(pSleepTime) } It was during this thread.Sleep() that the processor usage would spike. I had 4 cores in my dev machine (running this code) and all 4 would get busy, the aggregate would be about 25% of the total CPU power. Really strange! I decided that this really would be better handled with a timer class so now I set up a timer and do something like: if (RunState - runState.Started) { Do whatever needed doing } No more thread.sleep() and no more CPU usage spike. I am integrating that into my RunState class so that I (the developer) can decide whether the RunState should just run code on the calling thread (no thread object), start a thread object based in clsRunState, or start a timer in clsRunState. It is coming back up and I have rewritten my code in two places (so far) which used that while () { dosomething; thread.sleep(pSleepTime); } construct to now use a timer. The timer.Interval is the same value as the pSleepTime, IOW instead of sleeping a thread for 10 seconds I fire a timer every 10 seconds. Basically I am just doing things like checking whether I have a supervisor record ready to process, whether I have any new supervisor records etc. The timer is much cleaner (kinda) and one real upside is that the system is not waiting for the sleep to finish. Anyway, I will post the clsRunstate code I suppose if people promise not to laugh. I am still very much a junior C# programmer. John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it On 4/4/2012 6:16 PM, David McAfee wrote: > Did my message ever come through? > > On Wed, Apr 4, 2012 at 12:17 PM, David McAfee<davidmcafee at gmail.com> wrote: > >> Garbage Collection, although I think you are being facetious. :) >> >> >> You have stirred up in my head regarding a project that I have out there >> that seems to cause memory issues on certain computers. >> >> I haven't been able to recreate this in my office. >> >> I do use sleep as well in several places in that app. >> >> Care to share the code that worked for you? >> >> Thanks, >> David >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > >