Ho questo errore davvero, davvero strano che non sono mai stato in grado di definire (accade molto raramente). Fondamentalmente, ho un'applicazione C# che lanciava casualmente un'eccezione sconosciuta all'uscita. Sono riuscito a prenderlo nel debugger questa volta, e si scopre che la chiamata Application.Exit()
è gettando un System.InvalidOperationException
con il seguente messaggio:System.InvalidOperationException a causa di una modifica della raccolta sulla chiamata a Application.Exit()
Una prima eccezione di possibilità di tipo 'System.InvalidOperationException' in mscorlib. dll
Informazioni aggiuntive: la raccolta è stata modificata; l'operazione di enumerazione potrebbe non essere eseguita.
non sono sicuro che cosa questa collezione che è stata presumibilmente modificato è, o chi era colui che modificò.
L'analisi dello stack non è molto utile:!
mscorlib.dll System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext() + 0x13f byte System.Windows.Forms.dll System.Windows!. Forms.Application.ExitInternal() + 0x112 byte System.Windows.Forms.dll! System.Windows.Forms.Application.Exit (System.ComponentModel.CancelEventArgs e) + 0x65 byte
Qualsiasi idea di come mi puoi scoprire quale ArrayList è stato modificato? Non penso che sia qualcosa che sto facendo esplicitamente, più probabilmente un'azione che sto facendo che modifica lo stato sottostante del framework .NET nel mezzo di un'operazione che MS non si aspettava ..
Sembra la collezione Forms. IIRC Ho visto questo accadere prima, ma non ricordo alcun dettaglio, mi dispiace. – leppie
Cosa sta facendo la tua applicazione allo spegnimento? La prego di fornire il codice. – Fischermaen
Niente, davvero ... Al momento in cui ho premuto il pulsante di uscita, l'applicazione era in uno stato inattivo, senza thread in background o attività in esecuzione. –