详解.NET 同步与异步 之 Mutex


当前第2页 返回上一页

全局Mutex和局部Mutex是通过构造函数来构造不同的实例的,让我们来看一下Mutex的构造函数,一共有5个,挑两个具有代表性的看一下吧:

  • Mutex():用无参数的构造函数得到的Mutex没有任何名称,而进程间无法通过变量的形式共享数据,所以没有名称的Mutex也叫做局部(Local)Mutex。另外,这样创建出的Mutex,创建者对这个实例并没有拥有权,仍然需要调用WaitOne()去请求所有权。

  • Mutex(Boolean initiallyOwned, String name, out Booldan createdNew, MutexSecurity):第一个bool参数:指示初始化的实例是否拥有互斥体所有权。第二个string类型、为互斥体指定一个名称,如果string为null或者空字符串 则相当于创建一个没有名字的Mutex,当属于局部Mutex. 而有名字的Mutex当属于全局Mutex.第三个bool参数、如果已经初始化了互斥体 返回True, 如果互斥体已经存在则返回False. 最后一个参数用于Mutex访问的安全性控制。

4、用途

Mutex天生为进程间的同步基元,因此它可以用来控制应用程序的单实例

1

2

3

4

5

6

7

8

9

10

11

12

/// <summary>/// 单实例运行/// </summary>/// <returns> true 应用程序已启动,false 则没有

</returns>public bool SingleRun(ref System.Threading.Mutex mutex )

{

    mutex = new System.Threading.Mutex(false, "WINDOWS");   

    if (!mutex.WaitOne(0, false))

    {

        mutex.Close();

        mutex = null;

    }    if (mutex == null)

    {        return true;

    }    return false;

}

以上就是详解.NET 同步与异步 之 Mutex的详细内容!

返回前面的内容

相关阅读 >>

比较c#和java中面向对象语法的区别

c#中序列化的使用总结

.net下如何使用quartz.net的代码图文教程

关于url后面传中文方法总结

c#实现添加word文本与图片超链接的方法

c#如何连接到sql server2008数据库的示例分享

c#编程如何获取电脑硬件信息的方法?

c#cs与bs数据请求交换

asp.net mvc如何正确运用异步编程技术

解析.net垃圾回收(gc)原理

更多相关阅读请进入《.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...