Так что я подумал , что было бы очень важно уничтожить мои компоненты формы. На самом деле это было очень легко с минимальным рефакторингом (платит за написание хорошо абстрагированного кода).
Я сократил преступника до этой строки в классе формы, сгенерированном Дизайнером:
this.richRmDesc.TextChanged += new System.EventHandler(this.RichDesc_TextChanged);
Поэтому, когда я посмотрел на метод события RichDesc_TextChanged, я обнаружил, что он вызывает другой метод, который ссылается на нулевую коллекцию, поскольку он еще не был инициализирован. Это было в какой-то заурядной логике в самой форме.
По какой-то причине отладчик не смог полностью показать мне, что на самом деле происходило исключение в событии TextChanged. Он даже не давал мне указание на то, что событие было запущено, хотя имеет смысл, что оно сработало сразу после привязки.
Я исправил ошибку инициализации, связанную с логикой события TextChanged, и теперь все в порядке.
Я предполагаю, что отладчик не смог обнаружить эту ошибку события, потому что она происходила в другом потоке ??? Не уверен, правда. Комментарии приветствуются.