.NET线程同步(3)
来源:互联网 发布:英国 知乎 编辑:程序博客网 时间:2024/06/05 00:07
另一个同步策略是手控技术,System.Threading命名空间中的一些可以用于手控同步的类。ManualResetEvent类用来使线程处于等待状态,它有2种状态:有信号(True)或无信号(False)。还有2个重要方法:Reset()和Set()。
下面代码说明Reset()方法的用法:
using System;
using System.Threading;
namespace ManualReset
{
class Reset
{
[STAThread]
static void Main()
{
ManualResetEvent manRE;
manRE=new ManualResetEvent(true); // 赋给信号量
bool state=manRE.WaitOne(1000,true);
Console.WriteLine("ManualResetEvent After first waitone "+state);
manRE.Reset(); //设置ManualResetEvent状态为无信号量
state=manRE.WaitOne(5000,true);
Console.WriteLine("ManualResetEvent After second waitone "+state);
}
}
}
运行结果:
下面代码说明Set()方法的用法:
using System;
using System.Threading;
namespace ManualSet
{
class Set
{
[STAThread]
static void Main(string[] args)
{
ManualResetEvent manRE;
manRE=new ManualResetEvent(false);
Console.WriteLine("Before waitone");
bool state=manRE.WaitOne(5000,true);
Console.WriteLine("ManualResetEvent After first waitone "+state);
manRE.Set(); //将其状态设为有信号量
Thread.Sleep(3000);
state=manRE.WaitOne(5000,true);
Console.WriteLine("ManualResetEvent After second waitone "+state);
}
}
}
运行结果:
- .NET线程同步(3)
- .NET线程同步(3)
- .NET线程同步(3)
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET多线程编程(3):线程同步
- .NET线程同步(1)
- .NET线程同步(1)
- C#.NET多线程编程(3):线程同步
- .net多线程编程(3):线程同步
- .NET 线程同步(2)
- .NET 线程同步(2)
- 在C++中实现属性
- 如何在c++Builder中获取一个“汉字“的拼音索引
- 在C++Builder中创建Access odbc数据源
- .NET线程同步(1)
- .NET 线程同步(2)
- .NET线程同步(3)
- 仅供娱乐: 用中文命名,让汉字走向程序开发中!
- Storing XML in Relational Databases (1)
- Storing XML in Relational Databases(2)
- 在SunOS5.8/solaris7上使用Xerces-C解析器
- 建立一个程序员自己的全国性营销网络
- 用Visial Basic 在菜单栏实现超链接
- effective C++(第一章 从C转向C++)
- effective C++(第二章 内存管理)