C#同步线程详细概述

开发 后端
这里介绍在C#同步线程方面,C#提供了几种方法。在上述计算平方的例子中,需要与执行计算的C#同步线程,以便等待它执行完并且得到结果。

C#语言有很多值得学习的地方,这里我们主要介绍C#同步线程,包括介绍lock声明和Thread.Join方法等方面。

C#同步线程

在C#同步线程方面,C#提供了几种方法。在上述计算平方的例子中,需要与执行计算的C#同步线程,以便等待它执行完并且得到结果。另一个例子是,如果在其它线程中排序一个数组,那么在使用该数组前,必须等待该处理完成。为了实现同步,C#提供了lock声明和Thread.Join方法。

lock声明

  1. public void CalcSquare1()  
  2. {  
  3. lock( typeof(SquareClass))  
  4. {  
  5. Square = Value * Value;  
  6. }  

lock可以得到一个对象引用的***锁,使用时只要将该对象传送给lock就行了。通过这个***锁,可以确保多个线程不会访问共享的数据或者在多个线程上执行的代码。要得到一个锁,可以使用与每个类关联的System.Type对象。System.Type对象可以通过使用typeof运算得到,如表7所示。

Thread.Join方法

  1. private void button1_Click(object sender, System.EventArgs e)  
  2. {  
  3. SquareClass oSquare =new SquareClass();  
  4. t2 = new Thread(new ThreadStart(oSquare.CalcSquare));  
  5. oSquare.Value = 30;  
  6. t2.Start();  
  7. if( t2.Join (500) )  
  8. {  
  9. MessageBox.Show(oSquare.Square.ToString ());  
  10. }  

Thread.Join方法可以等待一个特定的时间,直到一个线程完成。如果该线程在指定的时间内完成了,Thread.Join将返回True,否则它返回False。在上述平方的例子中,如果不想使用触发事件的方法,可以调用Thread.Join的方法来确定计算是否完成了。以上介绍C#同步线程。

【编辑推荐】

  1. C#方法重写全面介绍
  2. C#流程控制语句简单描述
  3. Java和C#字符串类型概述
  4. C#访问修饰符详细剖析
  5. 选择C#构造函数描述
责任编辑:佚名 来源: IT168
相关推荐

2009-09-07 13:19:44

C#线程同步

2009-08-18 09:26:07

C#线程功能

2009-08-04 17:57:41

C#线程同步死锁

2009-08-04 18:00:51

C#线程同步Monitor

2009-08-28 15:07:31

C#线程

2009-08-31 09:44:23

C# Employee

2009-08-13 15:18:23

C#文件上传

2009-07-31 14:08:54

C# 匿名函数

2009-08-18 17:29:02

C#使用指针

2009-09-03 11:15:38

C#设置Coopera

2009-08-20 16:28:45

C#匿名方法

2009-08-25 10:08:39

C# MyData对象

2009-08-25 16:49:44

C#使用if语句

2009-08-24 18:09:13

C#构造函数

2009-08-17 09:57:00

C# Windows

2009-09-03 10:42:16

C# Employee

2009-08-19 11:09:00

C# Cast<T>

2024-02-27 10:44:58

C#线程后端

2011-08-30 15:44:57

C#

2009-07-31 15:37:45

C#静态构造函数
点赞
收藏

51CTO技术栈公众号