У меня действительно странная ошибка, которую я так и не смог опознать (это случается очень редко).По сути, у меня есть приложение на C #, которое случайно выдавало неизвестное исключение при выходе.Мне удалось поймать его в отладчике на этот раз, и получается, что вызов Application.Exit()
вызывает System.InvalidOperationException
со следующим сообщением:
Первое случайное исключение типа 'System.InvalidOperationException 'произошло в mscorlib.dll
Дополнительная информация: коллекция была изменена;Операция перечисления может не выполняться.
Я не уверен, что такое эта коллекция, которая якобы была изменена, или кто ее изменил.
Трассировка стека не очень полезна:
mscorlib.dll! System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext () + 0x13f байт System.Windows.Forms.dll! System.Windows.Forms.Application.ExitInternal () + 0x112 байт System.Windows.Forms.dll! System.Windows.Forms.Application.Exit (System.ComponentModel.CancelEventArgs e) + 0x65 байт
Любая идея, как я могуузнать, какой ArrayList был изменен?Я не думаю, что это что-то, что я делаю в явном виде, более вероятно, что я делаю действие, которое изменяет базовое состояние .NET framework во время операции, которую MS не ожидала ..