多线程里如何结束线程自身而不退出程序呢?

yzmsb 2009-09-12 04:15:44
this.close()就把整个程序结束了,怎么样只结束线程自己呢?
...全文
316 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzmsb 2009-09-12
  • 打赏
  • 举报
回复
TextBox1.Invoke((MethodInvoker)delegate { TextBox1.AppendText(“thisthinfo”); });

问题原因找到了。。多线程方法里有这一句,这句我取消掉各项功线程就能正常自己注销了,但如果没有这句。。那怎么和界面交换信息呢?

yzmsb 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jintianfree 的回复:]
貌似没理解楼主的意思

默默顶一下

[/Quote]

就是我上面的代码运行的多线程(不管什么内容)...在任务管理器里查看不能像没有"for (int x=0; x <100; x++) "那样线程会自己注销。。。加了for (int x=0; x <100; x++) 这个循环后在taskmgr里看查线程数量一直保持着...所以for (int x=0; x <100; x++) 按设想的应该是运行一百次的。而这个只运行了一次。。
jintianfree 2009-09-12
  • 打赏
  • 举报
回复
貌似没理解楼主的意思

默默顶一下
yzmsb 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 skiasky 的回复:]
c#的线程是托管的,一般来说,start之后就不管了。但是如果你需要控制,就必须指定线程name,并在后面的控制上使用。
[/Quote]
你好。不是的呀,我不要控制线程,我是等一个多线程过程完成再运行下一次过程呢。如上代码。。。可怎么都不会有for 2的
yzmsb 2009-09-12
  • 打赏
  • 举报
回复
for (int x=0; x <100; x++)
{
Thread[] px = new Thread[20];


for (int i = 0; i < px.Length; i++)
{
px[i] = new Thread(getMery);
px[i].Name = i.ToString();
px[i].IsBackground = true;
px[i].Start();
}

for (int i = 0; i < px.Length; i++)
{
px[i].Join();
px[i].Abort();
}
}
====================================================
只运行一次,原先的线程一直保持存着, 等于只有for 1,for 2都没有,我想运行100次的
skiasky 2009-09-12
  • 打赏
  • 举报
回复
c#的线程是托管的,一般来说,start之后就不管了。但是如果你需要控制,就必须指定线程name,并在后面的控制上使用。
yzmsb 2009-09-12
  • 打赏
  • 举报
回复
没有这个呀:this.Abort(),。。线程开始处的方法里才有。。被运行的线程中没有这个呢
鸭梨山大帝 2009-09-12
  • 打赏
  • 举报
回复
在线程执行的事件中添加this.Abort(),就结束自己了

111,093

社区成员

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

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

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