C#关于进程与线程(三)

一、创建多线程应用程序

     线程,也被称为轻量进程,指运行中程序的调度单位。目前大部分平台都支持多线程,允许程序中存在多个线程。在Windows操作系统的任务管理器中就可以查看线程,把选择列对话框的线程计数选上即能显示每个进程的线程数。

     在本节的实例中,创建了一个最简单的多线程应用程序。在C#应用程序中,线程由Thread类表示,位于System.Threading命名空间下。线程的启动由Thread类的Start方法实现。线程的构造函数中一般是一个方法名,启动该线程即等于启动了该方法。

using System.Threading;

class Program

{

     ///<summary>

     ///主函数

     ///</summary>

     static void Main(string[ ] args)

     {

          //定义一个线程变量t,构造函数中使用的参数是一个方法名

          Thread t=new Thread(WriteHi);

           t.Start();//启动该线程


           //循环输出"Hello"字符串

           while(true)

           {

              Console.Write("Hello");

           }

     }


    ///<summary>

    ///循环输出"Hi"

    ///</summary>

    static void WriteHi()

     {

           while(true)

           {

                Console.Write("Hi");

           }

     }

}

程序运行结果为类似Hi Hi Hi Hi...........Hello Hello Hello...........Hi Hi Hi.........^C请按任意键继续

由于程序中没有设定结束循环的条件,因此必须通过按下"Ctrl+C"组合键终止程序。从本程序的输出结果可以看出,线程的运行方式是分时的,即每个线程轮流占有CPU,因此两个线程的输出时顺序进行的。


二、向线程传递参数

     除了直接启动线程外,还可以在启动线程的时候向线程传递参数。这样,一些有参数的方法也可以进行多线程的应用。在C#中,要使用向线程传递参数的方式创建并启动线程,则该参数必须是一个Object类型,需要进行装箱和拆箱操作。

本节介绍如何在C#中向线程传递参数:

using System.Threading;

class program

{

      ///<summary>

      ///主函数

      ///</summary>

      static void Main(string[ ] args)

      {

          //定义一个线程变量t,构造函数中使用的参数是一个方法名

          Thread t=new Thread(SayHello);

          //在启动线程的方法中加入一个参数,该参数即SayHello方法使用的参数

          t.Start(true);


          //以正常方式调用的SayHello方法

          SayHello(false);

      }


     ///<summary>

     ///输出函数

     ///</summary>

     ///<param name="isHello">判别输出方式</param>

     static void SayHello(object  isHello)

     {

           //首先将object型参数转换为bool型参数

           bool  hello=(bool)isHello;

           //判断,true则输出Hello,否则输出Hi

           if(hello)

           {

                Console.WriteLine("Hello");//输出Hello

           }

           else

           {

               Console.WriteLine("Hi");//输出Hi

           }

     }

}

结果为:

Hello

Hi

请按任意键继续。。。。

从结果中可以看到,程序正确地识别了传递到SayHello方法中的参数。

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值