C/C++ コード (ポインター) に C# 参照を渡し、ポインターから C# 参照に戻します。多くのペア(uint、Object)があります。C# よりもはるかに高速であるため、C コードで並べ替えメカニズムを作成しました。必要なのはキー (uint) と値 (オブジェクト参照) だけです。Cコードはソートにキーを使用しており、値(ポインター)を変更していません。それを行う簡単な方法はありますか?マーシャリングを使用する必要がありますか? C関数は何度も(おそらく100万回も)呼び出されるので、マーシャリングが遅すぎるのではないかと心配しており、マーシャリングでそれを行う方法さえ知りません。オブジェクトのアドレスが GC によって変更されても、C# 参照のアドレスは変更されないと思います。そのため、固定されたメモリにオブジェクトを配置する必要はありません。私はこれについて正しいですか?これで、DllImport を使用して C 関数を呼び出すことができます。C ポインタへの C# 参照を格納できます。
これを行う方法についてのアイデアはありますか?