使用内核对象使程序单实例运行:事件对象
2009-09-16 19:52
633 查看
内核对象是所有Windows进程都可以访问的,因此可以使用其中的互斥信号量和事件对象使程序单实例运行。。
比起原来的IO锁好了很多 = = DEMO如下:
【使用事件对象(事件信号量)实现】
Code:
//////////////////////////////////////////////////////////////////////////
// CopyRight(c) 2009, YOYO, All Rights Reserved.
// Author: LIN YiQian
// Created: 2009/09/16
// Describe: 使用事件对象控制单实例程序 演示
//////////////////////////////////////////////////////////////////////////
#include <Windows.h>
#include <iostream>
using namespace std;
void main(void)
{
HANDLE hInstance = CreateEvent(NULL, FALSE, TRUE, "SingleInstance");
if (hInstance)
{
if (ERROR_ALREADY_EXISTS == GetLastError())
{
printf("程序已经在运行!");
system("pause");
return;
}
}
while (true)
{
printf("程序正在运行中。。运行中。。运行中。。= =/n");
Sleep(100);
}
CloseHandle(hInstance);
return;
}
比起原来的IO锁好了很多 = = DEMO如下:
【使用事件对象(事件信号量)实现】
Code:
//////////////////////////////////////////////////////////////////////////
// CopyRight(c) 2009, YOYO, All Rights Reserved.
// Author: LIN YiQian
// Created: 2009/09/16
// Describe: 使用事件对象控制单实例程序 演示
//////////////////////////////////////////////////////////////////////////
#include <Windows.h>
#include <iostream>
using namespace std;
void main(void)
{
HANDLE hInstance = CreateEvent(NULL, FALSE, TRUE, "SingleInstance");
if (hInstance)
{
if (ERROR_ALREADY_EXISTS == GetLastError())
{
printf("程序已经在运行!");
system("pause");
return;
}
}
while (true)
{
printf("程序正在运行中。。运行中。。运行中。。= =/n");
Sleep(100);
}
CloseHandle(hInstance);
return;
}
相关文章推荐
- 使用内核对象使程序单实例运行:互斥信号量
- 用命名内核对象判断程序是否有实例正在运行
- 使用命名对象防止运行一个程序的多个实例【转】
- 使用命名对象防止运行一个程序的多个实例
- 使用命名对象防止运行一个程序的多个实例【转】
- StructureMap 使用的实例构造函数是程序运行时确定的配置方法
- 互斥对象实现 程序单个实例运行
- delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如
- 一般处理程序里使用session对象为null,未将对象引用到实例化
- JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口
- C#测量程序运行时间及cpu使用时间实例方法
- 一般处理程序使用Session报错(未将对象引用设置到对象实例)
- 程序使用ObjectOutputStream(new FileOutputStream(fileName,true))向文件尾写入多个对象,多次运行,最后进行读取的时候抛出StreamCorruptedException
- 使用互斥量保证程序最多只有一个实例运行
- JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口
- C#使用Mutex实现程序单实例运行
- 使用Mutex实现程序单实例运行(c#)
- 使用Mutex实现程序单实例运行(c#)
- 内核对象(3)之单实例程序的创建
- 使用memory_profiler 与 cProfile ,line_profiler 优化Python程序运行时间和内存消耗实例