在WINDOWS里面使用临界来保护多线程需要访问的共享对象,现在,DELPHI有了新的跨平台临界保护者--System.TMonitor

代码演示如下:

FConnections := TObjectDictionary<TIdTCPConnection,TDSTCPChannel>.Create;

。。。

procedure TCMServerForm.CMServerTransportDisconnectEvent(Event: TDSTCPDisconnectEventObject);
var
Index: Integer;
begin
if (FConnections = nil) or (Event.Connection = nil) then
Exit;

//进入临界保护
System.TMonitor.Enter(FConnections);
try
FConnections.Remove(TIdTCPConnection(Event.Connection));

TThread.Synchronize(nil, procedure
begin
//update the connection list box, removing the connection that was just closed
Index := ConnectionsList.Items.IndexOfObject(Event.Connection);
if Index > -1 then
begin
ConnectionsList.Items.Delete(Index);

if ConnectionsList.SelCount = 0 then
SessionIdList.ClearSelection;
end;
end);
finally

// 终止临界保护
System.TMonitor.Exit(FConnections);
end;
end;

转载于:https://www.cnblogs.com/hnxxcxg/p/5670707.html

DELPHI跨平台的临界替代者相关推荐

  1. 关于 Delphi跨平台开发Android调用 JNI JAR java 的说明和注意事项

    2Pascal-新时代的Pascal-关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了 - Powered by Discuz! 关于 调用 JNI JAR 的说明和注意事项 ...

  2. 利用Delphi-cross-socket 库提升kbmmw 跨平台开发

    以前我写过了,通过httpsys 提升windows 下,delphi 多层应用.随着delphi 10.2 对linux 的支持,很多人也想在linux 下 发布kbmmw 服务器,但是官方仅通过i ...

  3. 咏南LINUX中间件

    咏南LINUX中间件 什么是跨平台? DELPHI跨平台已经不是停留在理论,而是可以实用了. 同一套中间件既能在WINDOWS服务器上面部署,又可以在LINUX服务器上面部署. 而做到这一切,只需要一 ...

  4. 【翻译】.NET 5 Preview 1 发布

    .NET 5 Preview 1 发布 去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET B ...

  5. ActiveMQ消息队列介绍(转)

    ActiveMQ是一个开源兼容Java Message Service (JMS) 1.1面向消息的中件间. 来自Apache Software Foundation. ActiveMQ提供松耦合的应 ...

  6. 如何在Android上访问iCloud服务

    Apple users are able to store their notes, pictures, contacts, and settings in their iCloud storage ...

  7. 提高软件执行效率的几条原则

    似乎有很多朋友对于我说的"避免使用WITH语句"持反对意见.理由是With语句可以提高执行效率.      的确With是可以稍微提高一些执行效率,但是这是以破坏代码可读性的代价来 ...

  8. 揭秘FMX进度条样式修改

    Delphi跨平台开发中的FMX样式处理给了我们UI设计的很多便捷.在很多年前使用Delphi开发VCL应用时,我们都期盼各种各样的皮肤控件,他能给我们带来新颖.夺目.优雅的程序外观.在现今的FMX应 ...

  9. 架构 | 前后端分离与前端工程化

    文章目录 前言 前后端分离 核心 对开发行为和职责的直接影响 前端工程化 本地代理与ngix反向代理 node是什么,有什么特点,与前后端分离,前端工程化的关系 node,npm,package.js ...

最新文章

  1. 【采集层】Kafka 与 Flume 如何选择
  2. Java连接数据库出现java.sql.SQLException: After end of result set的原因
  3. C# .net 命名规范
  4. python可以实现哪些功能_Python学习究竟有多强大,Python代码能实现哪些功能
  5. POJ 3275 Ranking the Cows (floyd传递闭包)
  6. HDU 5727 Necklace
  7. 汽车电子专业知识篇(十五)-整车电气系统设计——高压系统集成方案
  8. Excel——字符串操作函数
  9. 006 关于大数据的本地模式环境的搭建
  10. 类的虚函数表和虚函数在内存中的位置
  11. 【NOIP2016提高组复赛】蚯蚓 题解
  12. revit二次开发之插件安装包制作
  13. 皮尔逊(Pearson)相关系数 - 公式和代码实现
  14. 自定义B站视频播放速度
  15. 移动端web开发click touch tap区别
  16. 苹果系统手机调用java线程出错_Java线程面试题
  17. python-matplotlib-数据可视化-导入shp矢量数据并显示成图
  18. 编译安装pypy,让py飞起来
  19. UGUI内核大探究(十一)ScrollRect与ScrollBar
  20. 3DMax 2020中文版

热门文章

  1. python地图散点图_Python中基于Basemap的三维散点图
  2. 【安卓开发 】Android初级开发(八)WebView网页
  3. 【WebRTC---入门篇】(九)WebRTC网络基础:P2P/STUN/TURN/ICE
  4. C语言编写简单朗读发音小工具!!
  5. 乐高ev3搭建图_乐高EV3第一讲,Hello Ev3,搭建机甲战神模型
  6. canoco5冗余分析步骤_打造高性能的大数据分析平台
  7. vmware6.5.2序列号_教你如何查询苹果序列号,查询是否为官换机、激活时间等
  8. 单模单纤光纤收发器指示灯及故障问题详解
  9. 二层和三层工业交换机的主要参数说明
  10. [渝粤教育] 中国地质大学 金融保险业会计 复习题