P/Invoke(というか C リンケージな FFI 呼び出し)には非同期関数がありません。アンマネージドコードとして実装されている非同期処理を C# から呼び出したい場合にはどのようにすればいいでしょうか?
この記事では FFI においては非同期関数をコールバックの形で表現し、それを C# の Task や ValueTask としてラップするパターンを紹介します。
コールバックとコンテキストの受け渡し
特に AOT 環境では、コールバックとして渡せるのは基本的に static なメソッドのみで、あるコールバックがもともとどの呼び出しから帰ってきたものかを区別するための コンテキス…
Source link
Views: 0