很奇怪的線程問題,請高手們解釋一下

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

請問這是怎么回事呢﹖是C#線程的問題嗎﹖
...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqfeiyu 2006-02-22
  • 打赏
  • 举报
回复
??? 樓上的﹖
sqfeiyu 2006-02-21
  • 打赏
  • 举报
回复
添加數據是沒有問題﹐只是用Thread.Start執行的線程是不是不可靠啊﹖我用IsBackground設定它為后台執行﹐難到執行完后Thread還存在嗎? 用About來手動結束還是一樣. 為什么會影響與它毫不相干的代碼呢﹖
jiezhi 2006-02-21
  • 打赏
  • 举报
回复
建议你使用Control的BeginInvoke方法来执行添加数据的动作,这样就不会有问题了
meixiaofeng 2006-02-21
  • 打赏
  • 举报
回复
<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>
sqfeiyu 2006-02-21
  • 打赏
  • 举报
回复
測試了一下﹐用BeginInvoke加載數據同直接加載﹐速度沒有很大的變化。
上面的線程若放在窗體的構造函數中也不會出現問題. 由此可以肯定是Form_Load加載線程出問題.
難道Load時還有什么隱藏的變化嗎﹖

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧