博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#学习笔记线程
阅读量:7226 次
发布时间:2019-06-29

本文共 1924 字,大约阅读时间需要 6 分钟。

多线程,顾名思义,就是在一个应用中实现多个任务,在c#中,线程Threads包含在System.Threading的namespace中。

一、创建一个threads,最简单的方法就是创建一个threads实例

eg:

     Thread myThread = new Thread( new ThreadStart(·····) );

执行threads

     myThread.Start();

使用threads的一个实例:

    Thread myThread = new Thread( new ThreadStart(Incrementer) );

    myThread.Start();
   console.WritLine("执行到此”);
   public void Incrementer( )
   { 
        for (int i =0;i<1000;i++)
       {
             Console.WriteLine("Incrementer: {0}", i);

             Thread.sleep(1000);

       }
   }

 

在一个程序中执行一个包含此实例的任务,当到达了threads.start();时,将执行Incrementer操作中的Consloe.WriteLine操作,当执行完之后,才会继续执行threads.start();后面的操作,在这个实例中,会向控制台输出“执行到此”。

注意到Incrementer中有 Thread.sleep(1000);语句,该语句是将此线程停止1秒,每一秒向控制台输出一个writeline语句。Thread.sleep()中时间默认为一毫秒为单位。

下面是threads类中非常重要的方法:

Start():启动线程;

Sleep(int):静态方法,暂停当前线程指定的毫秒数; 

Abort():通常使用该方法来终止一个线程;

Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复; 

Resume():恢复被Suspend()方法挂起的线程的执行。

使用threads的一个实例:

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace thr{    class Program    {        static void Main(string[] args)        {            Console.WriteLine("start");            Thread th1 = new Thread(Thread1);            th1.Start();            Console.WriteLine("middle");            Thread th2 = new Thread(Thread2);            th2.Start();            Console.WriteLine("end");            Thread th3 = new Thread(Thread3);            th3.Start();        }        public static void Thread1()        {            for (int i = 0; i < 10; i++)                Console.WriteLine("Thread1 exec: {0}", i);        }        public static void Thread2()        {            for (int j = 0; j < 10; j++)                Console.WriteLine("Thread2 exec: {0}", j);        }        public static void Thread3()        {            for (int a = 0; a < 10; a++)                Console.WriteLine("Thread3 exec: {0}", a);        }    }}

 

结果为:

 

转载于:https://www.cnblogs.com/zyqBlog/p/4494253.html

你可能感兴趣的文章
析构方法、克隆对象
查看>>
Python字符编码详解
查看>>
Android开发 Firebase动态链接打开APP
查看>>
基于 HTML5 Canvas 的 3D 模型贴图问题
查看>>
让技术不要成为“背锅侠”!
查看>>
dubbo源码分析系列——dubbo的SPI机制源码分析
查看>>
表格单元格td设置宽度无效的解决办法
查看>>
防止视频资源被下载
查看>>
都是并发惹的祸
查看>>
eclipse实现JavaWeb项目 增量打包
查看>>
面试题系列一之 程序生命周期
查看>>
设计模式——观察者模式:气象监测应用
查看>>
NSUserDefaults简介及如何使用 NSUserDefaults 存储自定义对象
查看>>
IntelliJ IDEA搭建SpringBoot
查看>>
深入浅出iOS事件机制
查看>>
hadoop理解
查看>>
Oracle——18用户、角色和权限信息的视图总结
查看>>
WordPress 中的 Debug 模式(调试模式)
查看>>
node下使用express框架,ejs模板引擎
查看>>
搜索:文本的匹配算法
查看>>