C#如何杀死父线程

Roy*_*son 4 c# multithreading kill parent

父母有几个子线程.

如果用户单击停止按钮,则应使用所有子线程终止父线程.

//calls a main thread           
 mainThread = new Thread(new ThreadStart(startWorking));
 mainThread.Start(); 
////////////////////////////////////////////////
   startWorking()
{
    ManualResetEventInstance                    =   new ManualResetEvent(false);
    ThreadPool.SetMaxThreads(m_ThreadPoolLimit, m_ThreadPoolLimit);

    for(int i = 0; i < list.count ; i++)
   {        

        ThreadData obj_ThreadData   =   new ThreadData();
        obj_ThreadData.name      =   list[i];

        m_ThreadCount++;             

        //execute 
        WaitCallback obj_waitCallBack = new WaitCallback(startParsing);

        ThreadPool.QueueUserWorkItem(obj_waitCallBack, obj_ThreadData);
    }
  ManualResetEventInstance.WaitOne();
}
Run Code Online (Sandbox Code Playgroud)

我想杀死mainThread.

Pon*_*gge 9

一般建议:不要杀死线程(参见例如杀死线程).存在各种令人讨厌的资源泄漏和涉及的数据损坏风险.

改为使线程表现良好,并通过您喜欢的任何IPC机制,在发出信号时让它们完成工作.

我不记得.NET API识别父线程和子线程.这将使您的责任成为您追踪的责任.