Contoh Kode dari Buku Pola Keselamatan Thread Delphi
https://dalija.prasnikar.info/delphitspatt/
https://dalija.prasnikar.info
Bagian 2. Perpustakaan Run-Time Inti
Bab 5. Daftar Kontrol Poin Floating
- Brokenmath.dpr
- BrokenMath.dproj
- Safemath.dpr
- Safemath.dproj
Bab 7.1. Parameter
- Parameter.dpr
- Parameter.dproj
- ParameterSmainf.pas
- Parametersmainf.dfm
Bab 8. Bidang Kelas, Singleton, dan Instance Default
- Singletons.dpr
- Singletons.dproj
- Singletonsmainf.pas
- Singletonsmainf.dfm
- Singletonclasses.pas
- Singletonlocal.pas
- Singletonclassprop.pas
- Singletonlazy.pas
Bab 12. Koleksi
- Collectionstest.dpr
- Collectionstest.dproj
- CollectionsMainf.pas
- CollectionsMainf.dfm
Bab 13. Pemrosesan Pengumpulan Paralel
Bagian 3. Kerangka kerja inti
Bab 16. Serialisasi
- Serialization.dpr
- Serialisasi.dproj
- SerializationMainf.pas
- SerializationMainf.dfm
Bab 17. System.net
- Netclient.dpr
- Netclient.dproj
- Netclientmainf.pas
- Netclientmainf.dfm
Bab 19. Indy
- Indy.dpr
- Indy.dproj
- Indymainf.pas
- Indymainf.dfm
Bab 20. Istirahat
- Restdemo.dpr
- Restdemo.dproj
- Restmainf.pas
- Restmainf.dfm
Bab 21. Ekspresi Reguler
Bagian 5. Grafik dan Pemrosesan Gambar
Bab 27. Konsumsi Sumber Daya
- Sumber daya.dpr
- Sumber daya.dproj
- Resourcesmainf.pas
- Resourcesmainf.dfm
Bab 30. Contoh Grafik VCL
- Gambar.dpr
- Gambar.dproj
- ImageSmainf.pas
- ImagesMainf.dfm
Bagian 6. Kerangka Kustom
Bab 33. Pencatatan
- Nx.log.pas
- Logging.dpr
- Logging.dproj
Bab 34. Token Pembatalan
- Nx.tokens.pas
- Tokens.dpr
- Tokens.dproj
- Tokensmainf.pas
- Tokensmainf.dfm
Bab 35. Bus Acara
- Nx.horizon.pas
- Horizon.dpr
- Horizon.dproj
- Horizonmainf.pas
- Horizonmainf.dfm
Bab 36. Mengukur Kinerja
- Nx.chronos.pas
- Zerothread.dpr
- Zerothread.dproj
CATATAN: Tujuan dari contoh yang disajikan adalah untuk menampilkan kode dan masalah utas-tidak aman yang mungkin muncul dalam kode tersebut, atau untuk menunjukkan pola pengkodean umum untuk mencapai kode yang aman-utas saat beberapa utas sedang berjalan. Karena itu banyak dari mereka tidak menerapkan pembersihan yang tepat pada shutdown aplikasi, dan jika Anda menutup aplikasi sebelum memulai tugas latar belakang atau utas menyelesaikan pekerjaan mereka, aplikasi mungkin macet.
Untuk melakukan shutdown bersih, Anda harus menunggu tugas atau utas penyelesaian atau menggunakan beberapa mekanisme lain yang akan mencegah mengakses GUI atau data bersama lainnya selama shutdown aplikasi.
Anda dapat menemukan contoh tentang cara mematikan aplikasi di https://github.com/dalijap/code-delphi-async Bab 35.2 pembersihan pada penghancuran GUI