看到老外一个有意思的类,发现自己无知了 ...
2011-01-20 21:11
267 查看
废话不说,直接贴代码:
unitNewWindows;interface
usesWindows;
{$HINTSOFF}
type
TNewCriticalSection=object
private
FOldCriticalSection:TRTLCriticalSection;
public
procedureInitialize;stdcall;
procedureDelete;stdcall;
procedureEnter;stdcall;
procedureLeave;stdcall;
end;
{$HINTSON}
implementation
procedureTNewCriticalSection.Initialize;
externalkernel32name'InitializeCriticalSection';
procedureTNewCriticalSection.Delete;
externalkernel32name'DeleteCriticalSection';
procedureTNewCriticalSection.Enter;
externalkernel32name'EnterCriticalSection';
procedureTNewCriticalSection.Leave;
externalkernel32name'LeaveCriticalSection';
end.
基于object的老式对象实现,确实值得品味,这是使用范例:
procedureTest;
var
NewCS:TNewCriticalSection;
begin
NewCS.Initialize;
try
NewCS.Enter;
try
//somecode
finally
NewCS.Leave;
end;
finally
NewCS.Delete;
end;
end;
相比传统的op的代码:procedureTest;
var
CS:TCriticalSection;
begin
InitializeCriticalSection(CS);
try
EnterCriticalSection(CS);
try
//somecode
finally
LeaveCriticalSection(CS);
end;
finally
DeleteCriticalSection(CS);
end;
end;
还有利用SyncObjs的TCriticalSection的例子就不写了。
基于object的老式对象实现,确实值得品味,这是使用范例:
var
CS:TCriticalSection;
begin
InitializeCriticalSection(CS);
try
EnterCriticalSection(CS);
try
//somecode
finally
LeaveCriticalSection(CS);
end;
finally
DeleteCriticalSection(CS);
end;
end;
还有利用SyncObjs的TCriticalSection的例子就不写了。
相关文章推荐
- 自己发现的SDK 自带的apidemo中的一个bug
- 在CSDN论坛上看到一个数据库帖子,觉得挺有意思的,特转过来跟大家分享
- 在网上看到了一个面试题感觉很有意思 写一个函数,实现字符串反转
- 终于发现自己存在的一个问题:关于用不用VC创建对象的问题
- 我是一个硬盘(开始以为是一个笑话,看到最后才发现很感人)
- 看到了一个真实的自己……
- 一个有意思的测试,看看什么样的Linux发行版最适合自己!我的测试结果是:Debian !
- 我是一个硬盘(开始以为是一个笑话,看到最后会发现很感人)
- 很有意思的一个自定义CGI,用BAT文件做的。大家发挥想象,自己发挥哈~
- 一个有意思的测试,看看什么样的Linux发行版最适合自己!我的测试结果是:Debian !
- 看到一个老外写的图像处理文章,感觉不错,翻译过来供大家参考.
- 特别备注一下一个缓存加载的问题,百度上还搜不出来,在一个老外的网站上看到的
- 今天看StarterKit.Communities中的关于获取路径部分,发现一个问题?难道老外也会不仔细看MSDN,还是?
- qt连接数据库sqlite3,在网上看到好多人写的都有缺陷,经过努力,自己调试出来了一个
- 今天看到一个blog上讨论字符串分割函数,一时兴起,自己写了一个
- 生命中最重要的两个日子,一个是你出生,一个是你发现自己为什么而生
- 在牛客网看到这样的一个选择题,给出自己的见解
- 今天看到了一个非常有意思的签名档......
- 数学之美——组合小事(今天看到的一个简单的组合学应用,但是觉得挺有意思的)
- 搬运工~看到一个很有意思的python程序