Re: Memory Leak?
Dave Vorgang <[email protected]>
| Newsgroups | gmane.comp.windows.devel.dotnet.advanced |
|---|---|
| Message-ID | <34BDEF4FDF97EC46B7565B38A5F93FF702378FAB5903@MSDMAIL.medford.k12.or.us> |
My first go at this was to place it in a separate thread. I spent about a week on it and could never get it to work correctly. I kept get getting cross thread problems. The concept seems pretty simple. My main process brings up a form, changes certain attributes and initializes some fields, then the main process waits until the user presses the enter key or a function key. I can't use a dialog box because I want the form to remain once the user press Enter or a function key, but I want the main process to continue. So, I just need the ability wait until the user presses enter (or function key). Any more suggestions would be helpful. Dave Vorgang Senior Programmer / Analyst Medford School District - Information Technology (541) 842-1021 mailto:[email protected] -----Original Message----- From: Discussion of advanced .NET topics. [mailto:[email protected]] On Behalf Of Marc Brooks Sent: Monday, December 01, 2008 3:48 PM To: [email protected] Subject: Re: [ADVANCED-DOTNET] Memory Leak? You should NEVER be calling GC.Collect. For that matter, you really shouldn't ever code for DoEvents. Rather, do whatever it is you need to do in a loop in a separate thread from the UI. If I had more idea who was calling this method, and who was changing the global variables, then I could give better advice. On Mon, Dec 1, 2008 at 17:43, Dave Vorgang <[email protected]> wrote: > I changed it to: > Do > System.Windows.Forms.Application.DoEvents() > Thread.Sleep(55) > GC.Collect() > Loop Until _KeyEntered >= 0 > > This helped but it still increased Mem Usage as time went on. > > Any help on fixing this would be greatly appreciated. > > Thanks, > > Dave Vorgang > Senior Programmer / Analyst > Medford School District - Information Technology > (541) 842-1021 > mailto:[email protected] > > -----Original Message----- > From: Discussion of advanced .NET topics. [mailto:[email protected]] On Behalf Of Mark Hurd > Sent: Monday, December 01, 2008 3:16 PM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] Memory Leak? > > On Tue, Dec 2, 2008 at 9:38 AM, Steve Johnson <[email protected]> wrote: >> Likely, the problem is recursion. Each call to DoEvents pumps messages, >> which causes your VREADFIELDS function to be called from within itself. >> Each call allocates another stack frame. You'll eventually run out of stack >> space and crash with a StackOverflowException. > > I agree that it is not due to the code sample provided in isolation. > Whenever we need an idle loop we use a similar loop (with Sleep(55)), > and when it is worth suggesting we know it would be a good time to do > a GC.Collect we include that too. > > Regards, > Mark Hurd, B.Sc.(Ma.)(Hons.) > > =================================== > View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives > > =================================== > View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives > -- Marc C. Brooks http://musingmarc.blogspot.com NOT sent from an iPhone =================================== View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives