-1

我创建了下面的代码,从来没有给我任何错误:

foreach (var item in clb_frente_campos.CheckedItems)
{
    if (item == "numero_carteira")
    {            
        clb_frente_impressao.Items.Add(item);
        break;
    }
    else
    {
        if (!clb_frente_impressao.Items.Contains(item))
        {
            clb_frente_impressao.Items.Add(item);
            break;
        }
    }
}

此代码是一个按钮,用于将checked值从一个传递CheckedListBox到另一个。
请注意,虽然该项目numero_carteirachecked它会一遍又一遍地添加到我的另一个CheckedListBox。因为该项目numero_carteira是唯一可以多次添加的项目。但我希望他在它是时添加selected,这就是我制作这个新代码的原因:

foreach (var item in clb_frente_campos.CheckedItems)
{
    if (item == "numero_carteira")
    {
        if (clb_frente_campos.SelectedItem.ToString() == "numero_carteira")
        {
            clb_frente_impressao.Items.Add(item);
            break;
        }
    }
    else
    {
        if (!clb_frente_impressao.Items.Contains(item))
        {
            clb_frente_impressao.Items.Add(item);
            break;
        }
    }
}

而这个新代码就是error标题中给我的东西。
也是我见过的最奇怪的事情。当我breakpoints逐步使用和调试它时......它工作如何?为什么?

4

1 回答 1

0

如果它在您使用调试器时有效,则几乎可以肯定您遇到了线程问题。没有看到你的其余代码就很难调试,但我的直觉是寻找你可能循环的其他地方clb_frente_impressao.Items

于 2013-03-15T19:57:19.003 回答