.NET多线程-线程操作

1. 线程的创建

创建Thread实例,并传入ThreadStrat委托-还可以配置线程,如是否为后台线程

调用Thread.Start方法,还可以传参

2. 线程的终止

调用Thread.Join方法,等待线程的结束,这个情况下我们主线程会被阻塞,直到子线程结束,然后我们才能停止

调用Thread.Interrupt方法,中断线程的执行,会在相应线程中抛出ThreadInterruptedException(如果线程中包含一个while()循环,那么需要保证包含等待方法,如IO操作,Thread.Sleep等)

C#
var th = new Thread((obj) =>
{
    try
    {
        for (int i = 0; i < 20; i++)
        {
            Thread.Sleep(200);
            Console.WriteLine("线程启动");
        }
        Console.WriteLine("线程结束");

    }
    catch (ThreadInterruptedException)
    {


    }
    finally
    {
        Console.WriteLine("在主线程,等待线程结束");
    }
})
{
    IsBackground = true,
    Priority = ThreadPriority.Normal
};
th.Start("我看怎么个事儿");

Thread.Sleep(1000);
th.Interrupt();
th.Join();
Console.WriteLine("Done");
3.线程的挂起与恢复

Thread.Suspend以及Thread.Resume

较新版本的.NET中,这两个方法已经被标记Obsolete过时的,且调用会报错

推荐使用锁、信号量等方式实现这一逻辑

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部