createmutex原型_c语言mutex_createmutex(11)

电脑杂谈  发布时间:2017-02-17 02:01:51  来源:网络整理

在调用任何其他原子管理函数前调用它。这里只简单介绍本地原子表。它有多个相关的函数,

functionInitAtomTable(nSize:DWORD):BOOL;stdcall;

functionDeleteAtom(nAtom:ATOM):ATOM;stdcall;

functionAddAtom(lpString:PWideChar):ATOM;stdcall;

functionFindAtom(lpString:PWideChar):ATOM;stdcall;

functionGetAtomName(nAtom:ATOM;lpBuffer:PWideChar;nSize:Integer):UINT;stdcall;

以下介绍全局原子表相关函数。

functionGlobalAddAtom(lpString:PWideChar):ATOM;stdcall;

增加一个字符串到全局原子表中,并返回一个唯一标识值。

lpString参数为要添加到全局原子表中的字符串。

如果成功返回新增加的全局原子,失败则返回0。ATOM类型等于Word类型。

functionGlobalDeleteAtom(nAtom:ATOM):ATOM;stdcall;

减少对指定全局原子的引用计数,引用计数减1,如果引用计数为零,系统会在全局原子

表中删除此原子。

此函数一直返回0。

只要全局原子的引用计数大于0,其原子名称将保留在全局原子表中,即使把它放入表中

的应用程序终结了。一个本地的原子表在应用程序终结时被销毁,而不管其中原子的引用计

数是多少。

functionGlobalFindAtom(lpString:PWideChar):ATOM;stdcall;

在全局原子表中查找是否存在指定字符串。

lpString参数为要查找的字符串。

如果在全局原子表中存在要查找的字符串,则返回此字符串对应的原子,没有找到则返回0。

functionGlobalGetAtomName(nAtom:ATOM;

lpBuffer:PWideChar;nSize:Integer):UINT;stdcall;

返回指定原子所对应的字符串。

nAtom参数为指定查找的原子,lpBuffer参数为要存放字符串的缓冲区,nSize参数为缓冲

区大小。

若操作成功返回缓冲区接受长度,若失败返回0。UINT类型等于LongWord类型。

例:

//在程序的program文件中

...

ifGlobalFindAtom(iAtom)=0then

begin

Application.Initialize;

Application.CreateForm(TForm1,Form1);

Application.Run;

end

else

MessageBox(0,'已经有一个程序在运行','',mb_OK);

...

6.Synchronize同步

Synchronize()是定义在TThread类中的函数,它可以让要执行的代码实现线程同步,但这

种同步其实是伪同步,其原理是将子线程要执行的代码通过消息传递给主线程,由主线程来

执行,主线程将代码放在一个隐蔽的窗口里运行,而子线程会等待主线程将执行结果发给它,

这样的话,这段代码就不是子线程代码,而是一般的主线程代码。Synchronize()只是将该

线程的代码放到主线程中运行,并非实际意义的线程同步。RADStudioVCLReference中也

描述为:Executesamethodcallwithinthemainthread,Synchronizecausesthecallspecifiedby


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32871-11.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 魏振涛
      魏振涛

      让美彻底放弃冷战思维除非衰退加速

    • 赵亮
      赵亮

      做什么事情都要有个度

    • 陈太章
      陈太章

      大东沟海战在日本围着定镇两舰打的情况下

    热点图片
    拼命载入中...