一个线程启动另一个线程的问题.. 在线程a里面启动线程b 那么a是父线程而b是子线程a要等待b结束才能结束 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在a线程启动b线程,我开始也认为b是a的子线程,但经测试,a线程结束了但b线程还在运行。如果是父子关系则b线程也会结束,我认为不是父子关系。using System;using System.Threading;namespace ConsoleApplication2{ /// <summary> /// Class1 的摘要说明。 /// </summary> class Class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { // // TODO: 在此处添加代码以启动应用程序 // Thread t = new Thread(new ThreadStart(ThreadProc1)); t.Start(); Console.ReadLine(); t.Abort(); Console.ReadLine(); //Thread.CurrentThread.Abort(); } private static void ThreadProc1() { Thread t = new Thread(new ThreadStart(ThreadProc2)); t.Start(); int i = 0; while(true) { Thread.Sleep(1000); Console.Write("{0}:ThreadProc11\n",i); if(++i > 5000) break; } } private static void ThreadProc2() { int i = 0; while(true) { Thread.Sleep(1000); Console.Write("{0}:ThreadProc2\n",i); if(++i > 5000) break; } } }} .....static void Main(string[] args){..... Application.run("Thread_Name");}...... 用同步信号量呀,去MSDN查查AutoResetEvent 不会,各是各的,各自运行完毕就结束。如果要实现你所谓的父子线程,创建者可以使用Join来等待被创建线程结束。 使线程a要等待b结束才能结束==================================不是可以在b线程里挂起a线程,在b线程即将结束的时候再恢复a线程吗? 我在我的WIN程序里,在Closing事件中是这样写的this.myThread.Abort();if(this.myThread!=null){this.myThread.Interrupt();this.myThread=null;}这样一关这个窗体,那么它开启的这个myThread线程就自动给关闭.如果你是放在类中的话,大可放在Dispose()事件中 求关于http文件下载服务的实现方式,和边下载边写文件的方式 如何将类型“A.B.C”强制转换为“int” 求一段c#修改sql数据库的程序 DDL月份三级联动(2月要区分出一般和闰年)~~~ “找不到可安装的ISAM” 图片拖动实现不了拉 C#有没有像JS一样,把string + i(i=0)当成是string0这样子的函数? ASP.NET的ASCX控件制作问题 操作系统 Windows服务程序,前台不显示界面 visual studio.net msdn查看好多文档为什么老是报这个错 如何用remoting写网络磁盘或共享文件夹?
如果是父子关系则b线程也会结束,我认为不是父子关系。
using System;
using System.Threading;namespace ConsoleApplication2
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
// Thread t = new Thread(new ThreadStart(ThreadProc1));
t.Start(); Console.ReadLine();
t.Abort();
Console.ReadLine();
//Thread.CurrentThread.Abort();
}
private static void ThreadProc1()
{
Thread t = new Thread(new ThreadStart(ThreadProc2));
t.Start(); int i = 0;
while(true)
{
Thread.Sleep(1000);
Console.Write("{0}:ThreadProc11\n",i);
if(++i > 5000)
break;
}
} private static void ThreadProc2()
{
int i = 0;
while(true)
{
Thread.Sleep(1000);
Console.Write("{0}:ThreadProc2\n",i);
if(++i > 5000)
break;
}
}
}
}
{
.....
Application.run("Thread_Name");
}......
==================================
不是可以在b线程里挂起a线程,在b线程即将结束的时候再恢复a线程吗?
this.myThread.Abort();
if(this.myThread!=null)
{
this.myThread.Interrupt();
this.myThread=null;
}
这样一关这个窗体,那么它开启的这个myThread线程就自动给关闭.
如果你是放在类中的话,大可放在Dispose()事件中