管理されていないコードが自分の関数を呼び出します。最初の関数では、管理対象オブジェクトにポインタを戻す必要があります。ときどき後で他の関数のいくつかが同じポインタをパラメータの一つとして呼び出されます。私はそれを逆参照して、それをいくつかの計算を実行するために使用し、それからそれを処分する必要がない場合は使用しなければなりません。 ストーリーを短くするには、オブジェクトを固定して、GCを処分するまで移動させないようにする必要があります。どのようにC#でそれを行うには? ありがとうございます。C#で管理対象オブジェクトへのポインタをピン止めする方法は?
11
A
答えて
10
オブジェクトをC#で固定するには、メソッドを第2パラメータGCHandleType.Pinned
で使用できます。オブジェクトはGCHandle
のインスタンスが解放されるまで固定されたままで、GCHandle.Free
メソッドを使用します。
関連する問題
- 1. 「管理されていない」ポインタをピン止めする方法は?
- 2. 管理対象と非管理対象物理エンジンのC#
- 3. コアデータ:管理対象オブジェクトの管理対象オブジェクトコンテキストなし
- 4. レルムDBの管理対象/非管理対象オブジェクトとは何ですか?
- 5. 管理対象C++でアンマネージC++例外をキャッチする方法
- 6. 管理対象C++/CLIでインターフェイスを定義する方法
- 7. コアデータによる管理対象オブジェクトの再フォールトの防止
- 8. C++/CLIで管理クラス内の非管理対象に管理されていないポインタを渡す
- 9. Managed C++での管理対象オブジェクトの割り当て
- 10. DLL(管理対象および非管理対象)内の関数のリストを取得する方法は?
- 11. 管理対象クラスに管理対象外/非管理対象メンバーを追加する
- 12. OLEDBプロバイダは管理対象ですか、管理対象外ですか?
- 13. JSON(ScriptObject)から管理対象オブジェクトへの逆シリアル化
- 14. shared_ptrを使用して、すでに参照カウントされた管理対象オブジェクトを管理する方法は?
- 15. .Netの管理対象リソースと非管理対象リソース
- 16. 春の管理対象ではないオブジェクトは何ですか?
- 17. SwiftのTableViewでピンにピン止めする方法は?
- 18. 管理対象ファイルポータル
- 19. CoreData:error:管理対象オブジェクトがコンテキストから削除された後の管理対象オブジェクトの変更
- 20. オブジェクトグラフを使用して管理対象オブジェクトのNSMutableArrayをソートする方法
- 21. Pleskの管理対象サーバがスパムしています - 原因を突き止める方法は?
- 22. 一時管理対象オブジェクトIDと子管理オブジェクトコンテキスト
- 23. 管理対象/非管理対象間の移行を認識してコストを測定するC++/cli
- 24. 管理対象と非管理対象のアプリ内製品の違いは?
- 25. 廃棄パターン:管理対象と管理対象を知る方法を教えてください。
- 26. 管理対象のC#で管理されていない無料のCコードメモリ
- 27. POJOからSpring管理対象オブジェクトを呼び出す方法は?
- 28. dladdr:ポインタへのポインタ対オブジェクトへのポインタ
- 29. オブジェクトへのポインタの配列を管理するには?
- 30. 管理対象のフィルタオブジェクト
いくつかのコードを投稿してください。好ましくは、* minimal、complete *の例です。 –
ピン止めしないでください。アンマネージコードはポインタのための使用を持っていません。だから、ポインタを渡さず、 'ハンドル'を渡してください。静的なList <>のインデックス。これでハンドル値からコールバック内のマネージリファレンスを取り出すことができます。 –