C#零基础学习笔记012-多线程开发--End

目录

12 多线程开发

12.1 为什么要使用多线程

12.2 线程相关知识点

12.3 使用线程开发

12.4 Example: 线程


 

12 多线程开发

12.1 为什么要使用多线程

  1.可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。

  2.可以使用线程来简化编码。

  3.可以使用线程来实现并发执行。

12.2 线程相关知识点

  基本知识

    1.线程与进程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。

    2.前台线程和后台线程:通过Thread类新建线程默认为前台线程。当所有前台线程关闭时,所有的后台线程也会被直接终止,不会抛出异常。

    3.挂起(Suspend)和唤醒(Resume):由于线程的执行顺序和程序的执行情况不可预知,所以使用挂起和唤醒容易发生死锁的情况,在实际应用中应该尽量少用。

    4.阻塞线程:Join,阻塞调用线程,直到该线程终止。

    5.终止线程:Abort:抛出ThreadAbortException异常让线程终止,终止后的线程不可唤醒。Interrupt:抛出ThreadInterruptException异常让线程终止,通过捕获异常可以继续执行。

    6.线程优先级:AboveNormal BelowNormal Highest Lowest Normal,默认为Normal。

12.3 使用线程开发

  1.Thread类的使用

    使用Thread类可以创建和控制线程。在创建Thread对象后,就可以用Start方法启动线程。

       2.给线程传递数据

 

12.4 Example: 线程

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;  // 引入线程的命名空间

// 线程

namespace Lesson_42_1
{
    class Program
    {
        static void Main(string[] args)
        {
            // ThreadStart 所定义的是不带参的委托
            Thread t1 = new Thread(new ThreadStart(test1));
            t1.Name = "线程1";
            t1.Start();
            // t1.IsBackground = true;  //线程在后台执行。放开代码后,test1执行结果不会输出到窗口。

            // ParameterizedThreadStart 定义的是带参的委托
            Thread t2 = new Thread(new ParameterizedThreadStart(test2));
            t2.Name = "线程2";
            t2.Priority = ThreadPriority.Highest;  // 线程优先级
            t2.Start("hello");
        }

        static void test1()
        {
            // Console.WriteLine("线程停止2秒执行");
            // Thread.Sleep(2000);  // 线程的休眠
            Console.WriteLine("此线程在此处阻塞2秒");
            Thread.CurrentThread.Join(2000);

            Console.WriteLine("当前线程的执行名字:" + Thread.CurrentThread.Name);
            Console.WriteLine("这是线程1所执行的方法");
        }

        static void test2(object s)
        {
            Console.WriteLine("当前线程的执行名字:" + Thread.CurrentThread.Name);
            Console.WriteLine("这是线程2所执行的方法,s = " + s);
        }
    }
}

C#零基础学习笔记到此结束。

资源:https://download.csdn.net/download/wodehao0808/16213983

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号:程序喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值