为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易语言跨进程锁 跨进程许可证源码

三叶资源网 2022-03-27 22:45:20 易语言例程 756 ℃ 0 评论

易语言自带的许可证,应该是CriticalSection,(临界区)或(关键段),这是一个用户对象,不能实现跨进程加锁

跨进程加锁,就需要内核对象

QQ截图20220328224933 (1).jpg

sn_CreateMutex (0, 0, “独一无二的名字”)

创建一个命名互斥体,如果后续用同一个名字创建,会返回同一个


内核对象,不属于任何进程,不像用户对象,进程销毁了,关联的用户对象(窗口)就一定会销毁

每个内核对象内部有一个计数,归零的时候才会销毁,(打开就+1,关闭就-1)


每个内核对象,还有一个状态标识:信号量

ReleaseMutex,可以让一个Mutex,从无信号,变成有信号,(这个好像,有点反人类……字面意思反的)

WaitForSingleObject,可以等待一个对象,直到对象有信号才返回,同时会把这个对象,从有信号变成没有信号,这样其他线程就等不到了,直到ReleaseMutex


还可以通过下面的代码来禁止多开:

.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 hMtx, 整数型

.子程序 __启动窗口_创建完毕

hMtx = sn_CreateMutex (0, 0, “独一无二的名字”)
.如果 (sn_WaitForSingleObject (hMtx, 0) ≠ 0)
    信息框 (“禁止多开”, 0, , )
    结束 ()
.否则
    调试输出 (“允许运行”)
.如果结束


文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
内存操作163邮箱注册Safengine对比两块内存小米路由器新浪股吧账号自动注册ASP网络验证sqlite抖音脚本树型框项目数据分页类加QQ好友小米商城复制窗口滑动验证码易语言模块源码文本操作精易皮肤模块易语言CEF3模块
最新评论