私はマネージSystem.ActionをC++/CLIプロジェクト内のアンマネージstd ::関数に変換しています。コールバックを使用した後に、指定したIntPtrをリリースする必要がありますか、それとも不要ですか?Marshal :: GetFunctionPointerForDelegate:その結果を公開する必要がありますか?
void MyClass::Execute(System::Action^ callback)
{
IntPtr callbackPtr = Marshal::GetFunctionPointerForDelegate(callback);
std::function<void (void)> nativeCallback = static_cast<void (__stdcall *) (void)>(callbackPtr.ToPointer());
m_nativeObject->Execute(wrappedCallback);
// should I release callbackPtr here?
}
m_nativeObject-> Execute(wrappedCallback)が同期していても、 – Notoriousxl
スレッドはあなたの日を台無しにするでしょう。まあ、週。 –