易语言多线程禁止重复运行源码
系统结构:禁止重复运行,创建信号机_,释放信号量对象_,监测一个对象_,取全局内存块大小_,
======程序集1
| |
| |------ 禁止重复运行
| |
| |
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |
======调用的Dll
| |
| |---[dll]------ 创建信号机_
| |
| |---[dll]------ 释放信号量对象_
| |
| |---[dll]------ 监测一个对象_
| |
| |---[dll]------ 取全局内存块大小_
调用的DLL命令:
.DLL命令 创建信号机_, 整数型, "kernel32", "CreateSemaphoreA", , 创建一个新的信号机 如执行成功,返回信号机对象的句柄;零表示出错。会设置GetLastError。即使返回一个有效的句柄,但倘若它指出同名的一个信号机已经存在,那么GetLastError也会返回ERROR_ALREADY_EXISTS
.参数 信号机security特性, SECURITY_ATTRIBUTES, , SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或传递零值(将参数声明为ByVal As 并传递零值)——表示采用不允许继承的默认描述符。该参数定义了信号机的security特性
.参数 信号机初始计数, 整数型, , 设置信号机的初始计数。可设置零到lMaximumCount之间的一个值
.参数 信号机最大计数, 整数型, , 设置信号机的最大计数
.参数 信号机对象的名称, 文本型, , 指定信号机对象的名称。用vbNull可创建一个未命名的信号机对象。如果已经存在拥有这个名字的一个信号机,就直接打开现成的信号机。这个名字可能不与一个现有的互斥体、事件、可等待计时器或文件映射的名称相符;
.DLL命令 释放信号量对象_, 整数型, "kernel32", "ReleaseSemaphore", , ReleaseSemaphore
.参数 hSemaphore, 整数型
.参数 lReleaseCount, 整数型
.参数 lpPreviousCount, 整数型
.DLL命令 监测一个对象_, 整数型, "kernel32", "WaitForSingleObject", , API_WaitForSingleObject
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型
.DLL命令 取全局内存块大小_, 整数型, "kernel32", "GlobalSize", , API_GlobalSize返回全局内存块大小
.参数 hMem, SECURITY_ATTRIBUTES
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。