別のスレッドがオブジェクトをDelphiで使用できる間に、オブジェクトをスレッドに安全に配置する方法はありますか? お読みになる予定のアイデアや記事はありますか?他のスレッドがオブジェクトをDelphiで使用できる間に、オブジェクトをスレッドに安全に配置する方法はありますか?
答えて
安全に処分するには、他のスレッドがオブジェクトを使用していないことを確認する必要があります。
オブジェクトへのすべてのアクセスを、クリティカルセクションやミューテックスなどのロックでラップします。
または、オブジェクトを参照カウントにする。各スレッドは、オブジェクトの操作中にrefcountをインクリメントし、終了するとそれを減らします。次に、refcountを0に減らした後にオブジェクトを破棄することができます。のDelphi interface
を実装したクラスを作成することは、この目的のために非常にうまく動作し、大量の作業を自動的に行います。
TInterfacedObjectのサンプルコードはありますか? – qgi
私はリンク先のドキュメントに例があります。 –
@qgi OmniThreadLibraryに関するサンプルを読んでください。コレクションや他のほとんどすべてのプリミティブは、マルチスレッド化のために作られたARCオブジェクトとまったく同じです。また、COMインターフェイスを介してWord/Excelで作業することについての記事も読んでください。これらのインターフェイスは、マルチスレッドプログラムの設計を公開しないものの、Delphi ARCオブジェクトにもマップされています。 –
- 1. dbオブジェクトのスレッドを安全にdjangoに変更するには?
- 2. あるスレッドから別のスレッドにコレクションオブジェクトをJavaスレッドで安全に渡す
- 3. MySQLdbのConnectionオブジェクトとCursorオブジェクトを複数のスレッドから安全に使用できますか?
- 4. データベースにスレッドで安全に読み書きする方法は?
- 5. Swift Class Singletonインスタンスのスレッドを安全にする方法はありますか?
- 6. 複数のスレッド間でSqlBulkCopyを使用する安全な方法はありますか?
- 7. TPLでUIスレッドに `Disposable`オブジェクトを安全に渡す
- 8. JavaでDTOオブジェクトを使用するときのスレッドの安全性
- 9. stdスレッドを安全に停止する方法はありますか?
- 10. 他のスレッドで他のアクティビティの後にExecutorServiceオブジェクトをシャットダウンする方法はありますか?
- 11. フェンスでSPSCスレッドを安全にする
- 12. スレッド:GUIスレッドの外部でピックスマップを使用することは安全ではありません
- 13. Task.Run()他のスレッドが所有するオブジェクトを渡す方法は?
- 14. スレッド間で配列を共有するのは安全ですか?
- 15. "this"をコンストラクタで使用してスレッドを安全に開始できますか?
- 16. スレッドの運命をオブジェクトに結びつける方法はありますか?
- 17. golangで関数スレッドを安全にする方法
- 18. ロックステートメントを使用せずにコードをスレッドに安全にする
- 19. Unity3dでスレッドを使用する方法はありますか?
- 20. 安全にASP.NET MVCでスレッドを生成できますか?
- 21. Akka Actorで安全にスレッドを作成できますか?
- 22. そのスレッドで実行中にスレッドを所有するオブジェクトを安全に処分することはできますか?
- 23. Cライブラリのスレッドを安全にする
- 24. ConcurrentMapにスレッドを格納するのは安全ですか?
- 25. UIスレッドが他のスレッドから呼び出されたイベントをリッスンするときのスレッドの安全性
- 26. 他のスレッドで作成されたオブジェクトを使用する
- 27. には、スフィンクスサーチでスレッドをプレスタートする方法があります。
- 28. 複数のスレッドからバイト配列を安全に埋める方法は?
- 29. オブジェクトが解放された後、オブジェクトを安全に使用する手順はありますか?
- 30. QTの異なるスレッドで実行されているオブジェクトを安全に終了する方法
絶対にアクセスできないオブジェクトを解放しないでください。決して。 –