Delphi線程安全圖案的代碼示例
https://dalija.prasnikar.info/delphitspatt/
https://dalija.prasnikar.info
第2部分。核心運行時庫
第5章。浮點控制寄存器
- brokenmath.dpr
- brokenmath.dproj
- safemath.dpr
- safemath.dproj
第7.1章。參數
- 參數.dpr
- 參數。 dproj
- parametersmainf.pas
- parametersmainf.dfm
第8章。班級字段,單例和默認實例
- Singletons.dpr
- Singletons.dproj
- Singletonsmainf.pas
- singletonsmainf.dfm
- SingletonClasses.pas
- SingletonLocal.pas
- singletonclassprop.pas
- Singletonlazy.pas
第12章。收藏
- collectionstest.dpr
- collectionstest.dproj
- collectionsmainf.pas
- collectionsmainf.dfm
第13章。並行收集處理
13.1單個收集項目的獨立處理
- ParallelCollections.DPR
- ParallelCollections.DPROJ
- ParallelCollectionsMainf.pas
- ParallelCollectionsMainf.dfm
13.2單個收集項目的依賴處理
- depententparallelCollections.dpr
- 依賴性parallectarcollections.dproj
- depententParallelCollectionsMainf.pas
- depententParallelCollectionsMainf.dfm
第3部分。核心框架
第16章。序列化
- Serialization.dpr
- Serialization.dproj
- serializationmainf.pas
- serializationmainf.dfm
第17章。系統.NET
- netclient.dpr
- netclient.dproj
- NetClientmainf.pas
- NetClientmainf.dfm
第19章。印地
- Indy.dpr
- indy.dproj
- Indymainf.pas
- indymainf.dfm
第20章。休息
- RESTDEMO.DPR
- RESTDEMO.DPROJ
- RESTMAINF.PAS
- RESTMAINF.DFM
第21章。正則表達式
第5部分。圖形和圖像處理
第27章。資源消耗
- Resources.dpr
- Resources.dproj
- Resourcesmainf.pas
- Resourcesmainf.dfm
第30章。 VCL圖形示例
- Images.dpr
- Images.dproj
- imagesMainf.pas
- imagesmainf.dfm
第6部分。自定義框架
第33章。記錄
- nx.log.pas
- logging.dpr
- logging.dproj
第34章。取消令牌
- nx.tokens.pas
- tokens.dpr
- tokens.dproj
- tokensmainf.pas
- tokensmainf.dfm
第35章。活動巴士
- nx.horizon.pas
- Horizon.dpr
- Horizon.dproj
- HorizonMainf.pas
- HorizonMainf.dfm
第36章。衡量性能
- nx.Chronos.pas
- zerothread.dpr
- zerothread.dproj
注意:提出的示例的目的是顯示線程 - 不安全的代碼以及在此類代碼中可能出現的問題,或者在運行多個線程時顯示實現線程安全代碼的一般編碼模式。由於其中許多人沒有在應用程序關閉時實施適當的清理,並且如果您在啟動背景任務或線程完成工作之前關閉應用程序,則應用程序可能會崩潰。
為了執行乾淨的關閉,您要么需要等待任務或線程完成,要么使用其他一些機制,這些機制將阻止在應用程序關閉期間訪問GUI或其他共享數據。
您可以找到有關如何在https://github.com/dalijap/code-delphi-ashync中關閉應用程序的示例