Tôi đang chuyển đổi một System.Action được quản lý thành một hàm std :: không được quản lý bên trong một dự án C++/CLI; nên tôi phát hành IntPtr nhất định sau khi sử dụng gọi lại, hoặc là nó không cần thiết?Nguyên soái :: GetFunctionPointerForDelegate: tôi có nên phát hành kết quả của nó không?
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?
}
ngay cả khi m_nativeObject-> Execute (wrapCallback) là đồng bộ? – Notoriousxl
Một chủ đề sẽ làm hỏng ngày của bạn. Vâng, tuần. –