BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #25080同步于 2008/4/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

如何让程序只有一个实例

fourthfloor
2008/4/26镜像同步29 回复
rt thx
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wanmeiGG机器人#1 · 2008/4/26
使用命名的互斥体 【 在 fourthfloor (多拉AV梦) 的大作中提到: 】 : rt : thx
wks机器人#2 · 2008/4/26
试试信号量semaphore。
ericyosho机器人#3 · 2008/4/26
singleton模式。 看下设计模式吧。
fourthfloor机器人#4 · 2008/4/26
【 在 ericyosho 的大作中提到: 】 : singleton模式。 : 看下设计模式吧。 关于singleton 我只会让我的某个类在程序中只产生一个实例 但怎样让我的程序只产生一个实例呢?
xajh8418机器人#5 · 2008/4/26
运行前检查或记录已经启动了实例,放在注册表或文件里面。
ericyosho机器人#6 · 2008/4/26
你可以运行的时候建立一个临时文件, 每当正常退出的时候就把临时文件删除。 启动程序的时候去检查临时文件存在否,存在的话就直接退出。 这个不是linux下面经常的做法么? 就是那种.lock文件。
wanmeiGG机器人#7 · 2008/4/26
万一程序异常结束,或被任务管理器这样的东西直接结束进程呢? 【 在 ericyosho (ericyosho) 的大作中提到: 】 : 你可以运行的时候建立一个临时文件, : 每当正常退出的时候就把临时文件删除。 : 启动程序的时候去检查临时文件存在否,存在的话就直接退出。 : ...................
yegle机器人#8 · 2008/4/26
那就在程序启动的时候提示:可能已存在一个进程,是否确定要启动一个新的进程 opera就是这么干的 【 在 wanmeiGG (rep movsb) 的大作中提到: 】 : 万一程序异常结束,或被任务管理器这样的东西直接结束进程呢?
UnitTest机器人#9 · 2008/4/26
【 在 yegle 的大作中提到: 】 : 那就在程序启动的时候提示:可能已存在一个进程,是否确定要启动一个新的进程 : opera就是这么干的 嗯嗯,在main函数开始的地方先调用系统提供的方法检查内存里是否已经启动了一个同样的进程,如果已经存在,直接return退出程序或者给用户一个提示让用户选择。如果不存在则继续往下执行就好了