C#系列——多线程初步

前言

7月份的时候去深圳大学城图书馆借了一本《C# 2012大学教程》,由此开启了我的C#学习之旅。这本外国人写的书的确不错!让我不仅是学习C#语法,更是踏上了面向对象之路。10月份公司有项目需求,需要开发一个自研阀测试上位机,方便生产人员进行操作和观察。项目虽然做完了,但是感觉C#代码还有很大优化的空间,但是自己目前还没有掌握C#高级部分,遂又开始学习,同时用博客进行记录。

目标

使用uC/OS-II开发过超万行C代码量的我自然是对这些基本概念很是明了。所以关注点在于C#的多线程相关的语法,最终优化我曾经的自研阀测试上位机软件。

System.Threading 命名空间

System.Threading  命名空间提供一些使得可以进行多线程编程的类和接口。

常用类

Thread类 创建并控制线程,设置其优先级并获取其状态。
ThreadStart委托  表示在 Thread 上执行的方法。

常用枚举

ThreadPriority指定 Thread 的调度优先级。
ThreadState 指定 Thread 的执行状态。

多线程示例

一个线程类

包含多线程使用的方法,也可以说是包含多个线程,实现了线程的主体代码。

class Work 
{
    public static void DoWork() 
    {
        Console.WriteLine("Static thread procedure."); 
    }
    public int Data;
    public void DoMoreWork() 
    {
        Console.WriteLine("Instance thread procedure. Data={0}", Data); 
    }
}

主类

声明并实例化ThreadStart 委托对象threadDelegate,threadDelegate指向“一个任务”,或者说是指向“一个线程”。
声明并实例化Thread类的对象newThread,这样便可以调用Thread类的Start()方法启动线程了。
class Test
{
    static void Main() 
    {

        ThreadStart threadDelegate = new ThreadStart(Work.DoWork);
        Thread newThread = new Thread(threadDelegate);
        newThread.Start();

        Work w = new Work();
        w.Data = 42;
        threadDelegate = new ThreadStart(w.DoMoreWork);
        newThread = new Thread(threadDelegate);
        newThread.Start();
    }
}




文章中引用出处:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(SYSTEM.THREADING);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV3.5%22);k(DevLang-CSHARP)&rd=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值