我的主窗體(frmMain)在Form_Load時用一個線程添加數據﹐沒有問題,
但是在點擊ToolBar上的按鈕打開一個窗口(form1)時卻出錯了(在switch語句中執行打開form1的操作)﹕
1.用ShowDialog方式打開form1﹐提示物件不存在(form1已經用new實例化了).
2.用Show方式打開form1正常﹐不過退出form1時出錯,提示物件不存在.
3.如果frmMain在Form_Load時不使用線程﹐則完全沒有問題了.請問這是怎么回事呢﹖是C#線程的問題嗎﹖

解决方案 »

  1.   

    建议你使用Control的BeginInvoke方法来执行添加数据的动作,这样就不会有问题了
      

  2.   

    添加數據是沒有問題﹐只是用Thread.Start執行的線程是不是不可靠啊﹖我用IsBackground設定它為后台執行﹐難到執行完后Thread還存在嗎? 用About來手動結束還是一樣. 為什么會影響與它毫不相干的代碼呢﹖
      

  3.   

    測試了一下﹐用BeginInvoke加載數據同直接加載﹐速度沒有很大的變化。
    上面的線程若放在窗體的構造函數中也不會出現問題. 由此可以肯定是Form_Load加載線程出問題.
    難道Load時還有什么隱藏的變化嗎﹖
      

  4.   

    <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" cellSpacing="1"
    cellPadding="1" width="300" border="1">
    <TR>
    <TD></TD>
    <TD></TD>
    <TD></TD>
    </TR>
    <TR>
    <TD></TD>
    <TD></TD>
    <TD></TD>
    </TR>
    <TR>
    <TD></TD>
    <TD></TD>
    <TD></TD>
    </TR>
    </TABLE>