То, что, вероятно, происходит, - то, что SignalData косвенно изменяет словарь подписчиков под капотом во время цикла и ведет к тому сообщению. Можно проверить это путем изменения
foreach(Subscriber s in subscribers.Values)
К
foreach(Subscriber s in subscribers.Values.ToList())
, Если я буду прав, то проблема будет вызывающие абоненты dissapear
. Значения. ToList () копирует значения подписчиков. Значения к отдельному списку в начале foreach. Ничто иное не имеет доступ к этому списку (он даже не имеет имени переменной!), таким образом, ничто не может изменить его в цикле.
Look in Microsoft.Win32
namespace
OpenFileDialog openDialog = new OpenFileDialog();
if (openDialog.ShowDialog().Value)
{
..........
}
And the same for SaveFileDialog
SaveFileDialog saveDialog = new SaveFileDialog();
if (saveDialog.ShowDialog().Value)
{
..........
}