2 つ以上の他のオブジェクトによって共有されるオブジェクトを管理するためのベスト プラクティスはありますか。別のスレッドで実行しているときでも?
たとえば、A が作成され、それへのポインターが B と C に渡されます。B->GiveObj(A); C->GiveObj(A);
どうすればobjAを削除できますか?
これまでのところ、私が考えていたのは、参照がいくつあるかを監視し、このカウンターが0の場合、これを削除します(Aが渡されたときなど、受信者はA-> Aquire()を呼び出し、完了したらA-を呼び出します- >リリース();
または、B->RemoveObj(A); と伝えることもできます。そして C->RemoveObj(A); 問題は、B または C が別のスレッドで実行されている場合、A の処理が完了するまで A を削除できず、RemoveObj 呼び出しが表示されることです。(乱雑なフラグの束が必要です)。
おそらくシグナル/スロットを使用して、これを行う良い方法はありますか?
ありがとう