Re: Memory Leak?
Dave Vorgang <[email protected]>
| Newsgroups | gmane.comp.windows.devel.dotnet.advanced |
|---|---|
| Message-ID | <34BDEF4FDF97EC46B7565B38A5F93FF702378FAB5928@MSDMAIL.medford.k12.or.us> |
I do use the keypress event to capture certain keys and then raise events so my caller will do specific processing. The problem is the way forms are called from the main module. This is an attempt to convert a program that uses forms as data entry screens. The main sub calls forms (internally it creates a usercontrol that has the data entry fields). Then, the main sub needs to block until I get something back from the form. 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 Adam Tuliper Sent: Monday, December 01, 2008 10:35 PM To: [email protected] Subject: Re: [ADVANCED-DOTNET] Memory Leak? any particular reason to not follow code at this link, with the event going to the form before any controls? http://msdn.microsoft.com/en-us/library/ms171538.aspx On Mon, Dec 1, 2008 at 5:26 PM, Wilson, Phil <[email protected]>wrote: > A wild guess: If your cross-thread problems were related to the thread > wanting to change the UI, were you using Control.InvokeRequired and the > cross-thread delegate call model? > > Phil Wilson > > > -----Original Message----- > From: Discussion of advanced .NET topics. [mailto: > [email protected]] On Behalf Of Dave Vorgang > Sent: Monday, December 01, 2008 4:00 PM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] Memory Leak? > > 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 > =================================== 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