Bonjour à tous, suite à un énième:
Je viens vous demander de m'aider à remettre en question ma manière coder, en gros il faut libérer la mémoire dés qu'on utilise plus une variable c'est ça?Erreur lors de la création d'un Handler de fenêtre
Car j'ai du mal avec .net profiler ou encore dottrace, je vous demande quels sont les points principaux dans la manière de coder pour éviter ce genre d'erreurs?
Depuis quelques temps, je m'efforce de mettre des Dispose sur tout mes datareader et sur quelques autres variables. Ou faut -il également els placer?
Que rajouter d'autres?
Mon erreur apparait dans une fonction (assez longue et complexe qui crée un calendrier avec 20 personnes sur match aller retour) et ensuite je lui demande de supprimer le controle de chargement (qui se rajoute par dessus en attendant que ça soit finit) et d'afficher l'usercontrol de la page d'accueil (qui récupère les dernières news à son chargement).
Le debuggueur bug ici, dan smon form1.designer:
L'erreur que le debuggueur renvoie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }Mais l'erreur apparait également lorsque je lance mon application (je récupère également les news au chargement) et dans les deux cas l'user control des news ne se charge qu'à moitié, j'en déduis que ça vient de là mais alors pouvez vous me dire ce que j'ai fait pour que ça plante?System.NullReferenceException was unhandled by user code
Message=La référence d'objet n'est pas définie à une instance d'un objet.
Source=System.Windows.Forms
StackTrace:
à System.Windows.Forms.ListView.OnHandleDestroyed(EventArgs e)
à System.Windows.Forms.Control.WmDestroy(Message& m)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ListView.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
à System.Windows.Forms.UnsafeNativeMethods.IntDestroyWindow(HandleRef hWnd)
à System.Windows.Forms.UnsafeNativeMethods.DestroyWindow(HandleRef hWnd)
à System.Windows.Forms.NativeWindow.DestroyHandle()
à System.Windows.Forms.Control.DestroyHandle()
à System.Windows.Forms.Control.Dispose(Boolean disposing)
à System.Windows.Forms.ContainerControl.Dispose(Boolean disposing)
à System.Windows.Forms.Form.Dispose(Boolean disposing)
à BM2010.frmSaisiesBoutons.Dispose(Boolean disposing) dans C:\Users\Victor\Documents\PROG\PROJET BASKET MANAGER\CODE\C#\BM2010\BM2010\Form1.Designer.cs:ligne 20
à System.ComponentModel.Component.Dispose()
à System.Windows.Forms.ApplicationContext.Dispose(Boolean disposing)
à System.Windows.Forms.Application.ThreadContext.DisposeThreadWindows()
InnerException:
Parce que j'imagine que ce genre d'erreurs est récurrent, peut etre n'avez vous pas besoin de mon code.
D'après mes recherches c'est juste que trop de trucs se chargent en meme temps mais je fais comment pour charger autrement?
Pour mon code je sais pas lequel poster parce qu'en fait j'ai une listview et un tableau, et seul la listview se charge donc ça peut venir du designer non?
Voilà, ce post a donc double vocation, à savoir m'aider à comprendre comment coder plus proprement mais également pour résoudre ce problème qui apparait assez fréquemment.
Merci d'avance, r0seBa
Partager