In My application, I have an MDI form. From MDI form I open all forms as child forms. I have implemented IDisposable for all large objects like file stream DB connection etc. In the Form_Disposed event I dispose all unmanaged objects. After the child form is closed, all unmanaged objects are disposed but managed objects (controls and form) are not disposed and still in memory. I find it from .Net Memory Profiler ([URL]).
So I have write code to remove all event handlers of all controls and form. Now, When form closed, dispose is called and all event handlers and controls are disposed, but controls and form are still in memory.
I have a user control that inherits the FW ListView and I need to dispose of two objects when the form's disposing of it's objects. Here's what I've concluded already, am I on the right track?
I can't believe I'm still confused about this but, any way, lets finally nail it:I have a class that overrides OnPaint to do some drawing. To speed things up, I create the pens, brushes etc before hand, in the constructor, so that OnPaint does not need to keep creating and disposing them.
Now, I make sure that I always dispose of such objects, but I have the feeling I don't need to because, despite the fact they implement IDisposable, they're managed objects. I've been vigilant in always using 'using' so that I don't need to go through all my code checking. I just wanted to be clear that I wasn't being a pointless user.As an aside, I did have a strange situation, recently, where I had to replace a using block and manually call dispose! I'll dig that out and create a new question.
I am implementing IDisposable for a class and while disposing there is a internal list of disposable objects. Should I be disposing those object by looping through them.
public Class MyDisposable Implements IDisposable private _disposbaleObjects as new List(of OtherDisposables)
say you have a sub containing an io.streamwriter. That streamwriter is declared and used only inside that sub (and not as static). Should you still call dispose on that streamwriter or is it disposed automatically as it is no longer in use after that sub, until you call that sub again?
I'm trying to fix all my project warning according to Microsoft code analysis (CA:XXXXX) One of the warning is "CA2000: Dispose objects before losing scope" My Code is:
If I have a class that inherits another class in which there are objects that are disposed in the dispose() procedure, do I use mybase.dispose? ex Class A inherits Class B. [code]
vb GraphicsCard = New Device GraphicsCard.SetCooperativeLevel(Me, CooperativeLevelFlags.FullscreenExclusive) Dim description As SurfaceDescription = New SurfaceDescription surface to DirectX
Now the above works fine... for a fullscreen direct draw app...however i want to make a non-fullscreen app... how can i do that?I have tried several things with no avail and i also want the app to keep drawing when it does not have focus?
In my Zeal to get with the "Dispose" program, I implement a dispose pattern (still learning the ways and means of THAT) wherever it seems to make sense.I THINK I have the basic idea. However, I notice that, while Drawing.Brushes HAVE a Dispose method, when I call it, some sort of instability is created in Visual Studio itself, and i get the dreaded "Visual Studio has encountered an error and needs to close" splash screen, with no useable error information. SHould I assume that one should just NOT call dispose on Brush objects, or is there something I am missing here: [code]
I want to understand a situation; it's related to datatable clear().I have a code that populate a typed datatable from Excel in a separate thread using a backgroundworker. This works well, the table is filled and I can see the data. Now, I want to clear the data from table and restart the import. The operation is ten times slower than the first time. My datatable variable is declared like this:Private dt as new DataTable - not a local variableI want that all subs from class to be able to use the table, that's the reason I declared the table as private. What I want is to be able to create a new instance of dt (or clear allocated memory) - maybe this is the reason for slowdown.
I am using VB.NET (Visual Studio 2008) and thus .Net framework 3.5. I have developed an application which has a MDI form and then has several other forms, most of which are shown using form.showdialog and some set of forms are shown using form.show. Whenenver a form (shown using form.showdialog) was closed (usually by clicking on a button (OK or Cancel)) I wrote code Me.dispose. After careful testing and R&D I figured this caused flickering on the screen. There use to be a flicker on the screen and it looked weird.
I am having problems disposing of a image thats stored in a 'DataGridViewImageColumn' . When i try and delete the image the 1st one works then the 2nd time its used i get a 'System.IO.IOException: The process cannot access the file 'x' because it is being used by another process'. How do i solve this problem? i am disposing of the image before i try and delete it but yet its still not working:
PS - I have searched the forums / google for a suitable answer and cant find one
When i use this code my cursor goes to a point on my screen...Cursor.Position = Me.PointToScreen(New Point(285, 200))But when i use it a several times sometimes the position is slightly different...I can't figure it out why it is different after some time... Can i use the dispose function ?ps my form doesn't change in size and it doesn't move and always stays in the center of the screen.
I was wondering if you should dispose undisposed resources before closing your application. Maybe it's not necessary to do this because closing your application automatically takes care of this.
I have prided myself in having a pretty clean code however in the game I am making I have a player view (showscreen) and a host view, which is a copy of the player view (on a smaller screen). This way the host can see what's going on.The problem is that the graphic doesn't dispose properly and Garbage Collector gets it, though I have noticed it will crash if GC doesn't get it in time. The larger the showscreen window the more junk gets put into memory, which sucks.I thought I had everything correctly disposed below but still doesn't get the job done.
I am writing classes in VB.Net (both managed). The main class "A" creates an instance of "B". Class "B" must call a method of Class "A". I need to know two things (syntax, etc...):
1. How does class "A" tell class "B" what method to call?
2. How does class "B" call the method?
The method must pass back an array of Shorts (in this particular example), either as a return value, or as a ByRef argument.I don't want to use an event if I don't have to. The execution is timing critical. (I assume event handling involves a lot of overhead by the operating system, but I may be wrong.)
I have absolutely no background on programming in C (or any other unmanaged languages for that matter) yet I would like to use the GetBestInterface function from the IP Helper API in my .NET application. I tried to understand how P/invoke calls can be used to make calls to native methods, but there are many things that just don't make sense to me (like how types in managed code map to unmanaged types).
Is there an alternative function somewhere hidden in the System.Net namespace that does roughly the same thing? Or could I write my own alternative using existing base classes combined with some magic? Because that's basically what it seems to me: magic. There is no real explanation for how the method accomplishes what it does as far as I can tell...
I just discovered the LocalEndPoint property on the System.Net.Sockets.Socket class which I think could be quite useful in this. To my understanding it will do the best-interface-picking on my behalf and I'll just need to get the NIC that corresponds to the local endpoint.
I am having a very strange memory leak that seems related to databinding. It is very hard to reproduce, so I won't post any code here to do so, but will just describe the problem.We have data entry forms which have controls which bind to custom business objects through a BindingSource object.
I have event Button that creates text box in run time.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim textbox1 As New TextBox static Dim shiftDown As Integer static Dim counter As Integer
[code]....
All the text boxes that has been created displayed in GroupBox control dynamically. how GroupBox control size can be managed according to quantity controls inside it.
I have a .Net application (VB in particular, although I would this to be as language agnostic as possible) that uses a COM object (made in C++). I need to implement a event in COM that passes a char array from C++ to .Net. I guess I need to convert the array to a managed array; How can I do this?
I am well aware that finalizers are typically used to control unmanaged resources. Under what circumstances may a finalizer deal with managed ones? My understanding is that presence in the finalizer queue will prevent any object, or objects strongly referenced thereby, from being collected, but it will not (of course) protect them from finalization. In the normal course of events, once an object is finalized it will be removed from the queue and any objects it references will no longer be protected from collection on the next GC pass. By the time a finalizer is called, the finalizers may have been called for any combination of objects referred to by the object; one cannot rely upon finalizers being called in any particular sequence, but the object references one holds should still be valid.
I am trying to develop a dll in VisualStudio2005 in vb.net that will communicate with a spectrometer attached to the USB port of the computer.Now the dll exists in C++ and it works like a charm. It is unmanaged code.Now if I try to translate this code in VB.net (because our app is in VB and my boss wants it in VB for maintainability) I have problems.
First of all, I am trying to create a file to open that port. The code in C++ looks like below and it works. Needles to say I tried to call the C++ dll from our app and it works. If I call the vb dll it doesn't. It gives me "access denied" no matter what I tried. I am not sure if my CreateFile is wrong or it's .net. I read somewhere that I need a manifest file included in the dll? Has anyone experience something like this? Why would i get "ACCESS DENIED" all the time?
// close and clear current stuff ClosePort(); swprintf( sDevice, L"\\?\usb#vid_0765&pid_%s#******#{%s}", Device, PRIVATE_IID_STR );