Object already in use elsewhere - c#

When I am drag picture Box in Windows form it's showing as Object already in use elsewhere.
I searched over Stack overflow and other website says that error is Threads, Coding oriented and GDI+. But I didn't write any coding in that. I just drag the picture box. Then it shows “already in use elsewhere”.
Anyone Explain?

This is usually an indicator that something else, potentially some other thread in your own application, already has the target file that you're trying to save locked at the file system level. If you look at the inner exception I believe it should mention this. If it's not directly in the InnerException Another way to confirm this (or discover what it might really be instead) is to turn on first chance exceptions in the debugger and watch for what exception is being thrown "underneath" Save and then being turned into this generic exception.
A Generic Error occured at GDI+ in asp.net mostly because of missing target folder / access permissions.

Related

C# ASPX: Cannot read properties of undefined (reading 'keydown')

I am not that familiar with ASPX. Once I save a form on my page, application keeps working as expected, except that I receive this exception in console. Exception
I am not able to find the source of the problem or any place where this exception may occur related to keydown event. Also when I click on the underlined title on the right side, it takes me to console and I can see these strange stack traces. Stacktrace
Can anyone guide me on how to approach? Also can this problem be related to some config keys in Web.Config not specifically the code itself?
Thank you
.............................

WPF default behavior on exceptions

Please note that I'm aware of possible solution and have read some other SO posts which will answer the question how to handle unhandled exceptions globally and I'm not asking if it is good practice or not.
What I'm asking is:
Why do WPF applications close on exceptions?
I always thought that it is the expected behaviour, however when researching how to implement the exception handling globally in WPF, I encountered this sentence on the Microsoft documentation page:
By default, Windows Presentation Foundation catches unhandled exceptions, notifies users of the exception from a dialog box (from which they can report the exception), and automatically shuts down an application.
But my experience is different, the application just exits without any warning, so any unhandled exception will be a total mystery for the user and me as a developer.
My question is really: Am I missing something, or is Microsoft wrong about their own framework?
The docs seems to be wrong.
By default, a WPF application exits without any dialog box when an unhandled exception is thrown on the dispatcher thread.
You may consider to edit the docs and submit a PR on GitHub by clicking on the "Edit" button in the top right corner of the page.

Using A Custom Exception Form

I'm currently working on a C# WinForm application, and am trying to create a custom Form to use whenever an uncaught exception is thrown. The reason for this custom form, is to be able to log the details of every thrown exception in a log file, as well as provide the user with a sharp looking GUI with better, and easy to understand details of the error that occurred.
As it stands right now, i am registering for exception events:
Application.ThreadException += new ThreadExceptionEventHandler(ExceptionHandler.OnThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHandler.OnUnhandledException);
The ExceptionHandler class logs the error in a log file, and then displays my custom WinForm. My question is, is this the only way to display my custom form? An issue i know of right now, is i am unable to determine whether the application can still continue, or if it will close when the form is closed.
Overall, my question is... Is there a better, or easier way to use my custom exception form? Also, is there a way to know IF the application will be able to recover, once the Exception form is closed?
It's not safe to continue running a program if you don't understand the reason for an exception.
This topic is discussed in more detail here:
http://blogs.msdn.com/b/codeanalysis/archive/2006/06/14/631923.aspx
You should start by exiting the application for any error you do not anticipate. The form is a nice touch but beware it may not work, since you do not know what the problem is - so wrap that in a try catch. Then as errors come up do some analysis and if it is something you can recover from than catch that specific exception and recover. Typically though if something bubbles all the way up to AppDomain.CurrentDomain.UnhandledException it is probably something that will leave the app in a bad place and you want to close.

How to find source for win32 exception "error creating window handle"

I'm looking for a little help regarding the win32 exception "error creating window handle".
From time to time our program (WinForms - C#) throws this exception and sometimes the windows even freeze, so that the users have to kick the process to be able to work again.
From the many other threads regarding this problem, I know what I should be looking for, but not extactly where as our program is quite big. So I was hoping that there might be a way to restrict the codelines I have to check... Are the any tools, which can help with this exception?
Short update: I solved the problem.
ProcDump didn't help me much, because I got pretty the same information from our logfiles. However, I was able to reproduce the error in our development environment. Thanks to debugger and displaying the user-objects count in the taskmanager I found the source of the memoryleak - an undisposed texbox which was created dynamically.
Thanks again for the tips!
If this issue happens inside the debugger, you can set the debugger (I will assume Visual Studio as you're using C#?) to break on throwing an exception. In your case you would want to set an exception breakpoint on (I think) System.ComponentModel.Win32Exception.
Again assuming Visual Studio as your IDE, on the "Debug" menu is an "Exceptions..." item. This allows you to tell the debugger to break when specific exceptions are a) thrown, or b) unhandled.
Under Common Language Runtime Exceptions, expand System.ComponentModel, and enable the checkbox in the Thrown column for System.ComponentModel.Win32Exception.
Then just carry on as normal. If during debugging the exception occurs, it should break into your program and allow you to see where it's happening.
Edit: If you can't reproduce the problem on your development machines, see if you're able to set up the target machine to produce a dump when a crash occurs. One way of doing this is to run ProcDump. Run it with the -e parameter to create a dump in the event of an exception. Then you can analyse this back at the ranch.

winform application exception DragDrop occurs outside of IDE

My winform application is failing when run outside of the IDE with a dragdrop exception. The error does not occur while being run from inside the ide (VS2008). How can I trace this. I have seen mention of using JIT in the error box that is displayed post error - will this help me trace my problem?
Don't know if this will be helpful, but...awhile ago I was getting DragDropException when my WinForms app was being run on a thumb drive, not a full system. The form generating the error had no drag-and-drop feature. I never figured out the problem, but I saw that a UserControl on that form had defaulted AllowDrop=true unnecessarily. Once I turned that off, the problem went away.
If your form is intended to support drag-and-drop, I'd look into on what thread the form generating the exception is instantiated. My understanding is that Microsoft's implementation of drag-and-drop is COM-based, which must be initialized in an STA thread. Putting the [STAThread] attribute before your program's entry point will accomplish this.

Categories