为什么System.StackOverflowException仅出现在某些机器上?

时间:2013-09-18 10:04:51

标签: c# events recursion

无意中我在代码中做了一些循环,它总是调用事件处理程序本身。我在我的电脑上没有遇到任何问题(Win7 64)和工作伙伴,当他在XP上运行它时。但在第三台PC上也使用Win7 64应用程序崩溃。

我在我的电脑和同事的PC上通过调试器,甚至调试器内部的行为也不同。

我可以说,我的电脑以某种方式管理这个问题并最终走到外面(我不知道为什么),而在第二台PC上,它只是陷入了无限循环。可能是什么原因?长话短说 - 以下代码曾经在两台PC上工作,而不适用于另外一台 - 为什么?

private void comboBoxBasicTabBasicProfile_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    _profilesContainer.SetCurrentBasicConfig((BasicConfigSTD32)comboBoxBasicTabBasicConfig.SelectedItem);
    loadBasicConfigsToGUI();
}

private void loadBasicConfigsToGUI()
{
    var currentConfig = _profilesContainer.GetCurrentBasicConfig();
    comboBoxStatusTabBasicConfig.Items.Refresh();
    comboBoxBasicTabBasicConfig.Items.Refresh();

    comboBoxStatusTabBasicConfig.ItemsSource = _profilesContainer.BasicConfigList;
    comboBoxStatusTabBasicConfig.SelectedItem = currentConfig;
    comboBoxBasicTabBasicConfig.ItemsSource = _profilesContainer.BasicConfigList;
    comboBoxBasicTabBasicConfig.SelectedItem = currentConfig;
    // [...]
}

0 个答案:

没有答案