Delphi Thread Safety Patterns Bookのコード例
https://dalija.prasnikar.info/delphitspatt/
https://dalija.prasnikar.info
パート2。コアランタイムライブラリ
第5章。フローティングポイント制御レジスタ
- brokenmath.dpr
- breakingmath.dproj
- safemath.dpr
- safemath.dproj
第7.1章。パラメーター
- parameters.dpr
- parameters.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個々の収集項目の依存処理
- 依存関係のある平行コレクションS.DPR
- dependentparallelcollections.dproj
- dependentParallelCollectionSmainf.pas
- dependentparallelcollectionsmainf.dfm
パート3。コアフレームワーク
第16章。シリアル化
- serialization.dpr
- serialization.dproj
- SerializationMainf.pas
- SerializationMainf.dfm
第17章。System.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
注:提示された例の目的は、そのようなコードで発生する可能性のあるスレッド非Safeコードを表示するか、複数のスレッドが実行されている間にスレッドセーフコードを達成するための一般的なコーディングパターンを表示することです。そのため、それらの多くはアプリケーションのシャットダウンに適切なクリーンアップを実装しておらず、バックグラウンドタスクまたはスレッドがジョブを完了する前にアプリケーションを閉じると、アプリケーションがクラッシュする可能性があります。
クリーンシャットダウンを実行するには、タスクまたはスレッドの完了を待つか、アプリケーションのシャットダウン中にGUIまたは他の共有データにアクセスするのを防ぐ他のメカニズムを使用する必要があります。
https://github.com/dalijap/code-delphi-async第35.2 GUI破壊に関するクリーンアップでアプリケーションをシャットダウンする方法の例を見つけることができます