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方法中的参数。

校园失物招领微信小程序源码, 失物招领小程序主要为解决大学生时常丢失物品而且很难找回以及归还过程繁琐不方便的问题, 传统的失物招领方式不同,该款校园失误招领小程序拥有快捷发布寻物启事和失误找领功能, 快速查找、极速归还、高效沟通、防误领冒领等功能, 在开发校园失物招领小程序前用户访谈发现有近40的同学校园内频繁丢失物品、证件、校园卡等, 数码产品、日用品等,丢失区域主要发生在教学楼、图书馆和食堂。 拾领校园失物招领小程序继承了寻物启事和失物招领,丢失物品或拾取物品都可发布帖子, 首页的横幅滚动公告展示通知公告等,banner图片化的方式更具有视觉吸引力, 最新信息可显示最近发布的招领信息或寻物信息,更加方便快捷的展示信息, 用户可通过首页的发布按钮发布帖子,发布者只需填写物品的相关信息,类别、地点等相关信息, 并且可以填写手机号开启认领验证,并可以一键生成二维码分享或分享至群聊和朋友圈。 列表内可以筛选物品类别或精确搜索,物品详情里可展示物品的相关信息, 确认是自己的物品后可点击认领,然后验证信息,需填写物品的关键信息以作辨认, 防止冒领误领,物品详情页可生成二维码海报分享,还有即时的消息联系功能以提高沟通效率, 发布者还可选择放置在代收处,双方还可以通过拨打电话紧急联系,用于紧急情况,让失物找到主人, 个人中心可以管理发布的物品帖子,管理个人信息,包括昵称、默认学校、手机号的修改、 编辑发布的物品帖子、获取帮助等。帮助用户流畅的使用该小程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值