码迷,mamicode.com
首页 > 编程语言 > 详细

C#线程入门教程之单线程介绍

时间:2017-12-14 04:01:13      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:net   reads   font   静态   pen   调用   线程id   ddd   like   


什么是进程?

当一个程序被打开运行时,它就是一个进程。在进程中包括线程,进程可以由一个或多个线程组成。


什么是线程?

线程是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。


什么是多线程?

多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。


个人总结

在C#中我们开启一个应用程序就是打开了一个进程,这个进程中包括一个主线程。我们可以在此基础上在增加自己写的单个或多个线程,来执行我们想要完成的任务。

在Thread线程类中我们常用到的一样方法:

Start():启动线程;

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

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

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

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

在C#中开启一个线程,来执行我们所写的方法。主要是通过ThreadStart代理委托来实现。下面写一些简单代码示例。


代码示例

单线程:


代码如下:


using System;

using System.Threading;

namespace StudyThread

{

class Program

{

static void Main(string[] args)

{

OneThread();

}

static void OneThread()

{

Thread threadA = new Thread(ThreadMethod);

threadA.IsBackground = true;   //设置当前子线程为后台线程,为后台线程意味着,主线程关闭后,其他子线程都同时关闭

threadA.Start();

object ThreadParameter = “P”;

Thread threadB = new Thread(new ParameterizedThreadStart(ThreadMethodParameter));

threadB.IsBackground = true;

threadB.Start(ThreadParameter);

Console.WriteLine(“Main Write:M”);

Console.ReadLine();

}

static void ThreadMethod()

{

for (int i = 0; i < 10; i++)

{

Console.WriteLine(“A”);

}

}

/// <summary>

/// 带参数线程

/// </summary>

/// <param name=”Parameter”>只能定义一个object参数,因为委托ParameterizedThreadStart为单参数object类型</param>

static void ThreadMethodParameter(object Parameter)

{

for (int j = 0; j < 10; j++)

{

Console.WriteLine(“B”+Parameter);

}

}

}

}

在代理里分别开启两个线程。

第一个线程ThreadA没带参数,线程运行时去执行ThreadMethod()方法.

第二个线程ThreadB带上一个Object参数,通过ParameterizedThreadStart委托去执行ThreadMethodParameter(object Parameter)方法.此线程在调用Start()时传入所需参数。

(写代码时我在想为什么带参数线程只能传一个object参数?看了代码才知道ParameterizedThreadStart只有一个参数没有重载)。

执行结果:

技术分享图片

Main Write:M 为主线程打印。

A:为线程ThreadA打印。

BP:为带参数线程ThreadB打印。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#线程入门教程之单线程介绍

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23128.html






相关内容

C#线程入门教程之单线程介绍

标签:net   reads   font   静态   pen   调用   线程id   ddd   like   

原文地址:http://www.cnblogs.com/paobuke/p/8035552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!