关于C#使用线程创建窗体对象、、窗体失去响应

crystal_lz 2011-12-19 10:15:10
我写的代码有点多 全部发上来看有点碍眼、、所以我就在这里来个示例说明一下我的程序
Thread Test = new Thread(new ThreadStart(TestFuntion));
Test.start();

public void TestFuntion(){
while(True){
.......
.......
if (若满足条件则创建一个窗体出来) {
new Form2().show();//窗体的确创建出来了 可创建出来的窗体是失去响应的
}
.......
.......
}
}
...全文
138 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_lz 2011-12-21
  • 打赏
  • 举报
回复
好吧我知道怎么弄了 终于搞定这问题了、、、
tony_102 2011-12-20
  • 打赏
  • 举报
回复
.net 中涉及到控件的操作都要在创建该控件的线程中调用,用控件的invoke方法调用。
crystal_lz 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 falconfei 的回复:]
新的线程要和主线程完全脱离,不要有共享依赖关系。新线程调用主线程中的窗体空间,采用invoke等回调或委托方式。
[/Quote]
能举例一下么??、、、
极地_雪狼 2011-12-19
  • 打赏
  • 举报
回复
新的线程要和主线程完全脱离,不要有共享依赖关系。新线程调用主线程中的窗体空间,采用invoke等回调或委托方式。
crystal_lz 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sp1234 的回复:]
线程里与界面控件有关的代码,放到线程外(之前)创建的control的Invoke中去操作。
[/Quote]
能说一下具体的步骤么?? 要怎么弄或者来一个简单的列子、、、我对C#还是菜鸟阶段 但是想写一些其他程序难免遇到问题、、
  • 打赏
  • 举报
回复
线程里与界面控件有关的代码,放到线程外(之前)创建的control的Invoke中去操作。

110,561

社区成员

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

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

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