[c#] C#:“類型'System.InvalidOperationException'的第一次機會異常”


Answers

這裡的問題是你的計時器啟動一個線程,當它運行回調函數時,回調函數(updatelistview)正在訪問UI線程上的控件,所以這不能做到this一點,因為this

Question

在C#中進行類分配,我遇到了程序崩潰而沒有任何錯誤(除了VS2010的調試窗口中寫的內容)。 以下是導致崩潰的典型代碼:

public partial class Test : Form
{
    public Test()
    {
        InitializeComponent();
    }

    private void Test_Load(object sender, EventArgs e)
    {
        ColumnHeader header;

        header = new ColumnHeader();
        header.Text = "#";
        header.TextAlign = HorizontalAlignment.Center;
        header.Width = 30;
        listView1.Columns.Add(header);

        TimerCallback tcb = this.UpdateListView;

        System.Threading.Timer updateTimer = new System.Threading.Timer(tcb, null, 0, 1000);
    }

    public void UpdateListView(object obj)
    {
        ListViewItem item;
        listView1.Items.Clear();

        for (int i = 0; i < 10; i++)
        {
            item = new ListViewItem(i.ToString());

            listView1.Items.Add(item);
        }

    }
}

......我在這裡錯過了什麼?

** 編輯 **

沒有錯誤,程序就像我調用System.Environment.Exit(0);一樣結束 System.Environment.Exit(0);

A first chance exception of type 'System.InvalidOperationException' occurred in System.Windows.Forms.dll
The program '[4644] ProgramTest.vshost.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).
The program '[4644] ProgramTest.vshost.exe: Program Trace' has exited with code 0 (0x0).



Related



Tags

c# c#   crash