このような説明があります
譲渡を支援する IMemoryOwner<T> インスタンスはないため、所有権を他のコンポーネントに譲渡することはできません
他のコンポーネントに譲渡と言うのが何を指しているのか不明ですが、例えば以下のようにメンバー変数にいれて(Timerに譲渡して?)使う事はできないという事でしょうか?
C#
1 2 public class MemoryTest 3 { 4 Memory<char> _memory; 5 System.Threading.Timer _timer; 6 7 public MemoryTest() 8 { 9 this._memory = new char[256]; 10 this._timer = new System.Threading.Timer((o) => 11 { 12 var memory = this._memory; // ここでメモリーを使う事はできない? 13 // 確保したchar[256]がコンストラクタを抜けるとガベージ コレクターされる可能性があるから使えないという事でしょうか??? 14 }); 15 } 16 }
コメントに記載していますが、確保したchar[256]がコンストラクタを抜けるとガベージ コレクターされる可能性があるから使えないという事を言っているのでしょうか?
"所有者あり"のMemoryPool<char>.Shared.Rent()であれば使えないという事は理解できるのですが、
"所有権なし"の場合も使ってはいけないとい事でしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/27 08:57