在非託管回調期間使用的委託內拋出異常的影響或未察覺到的後果是什麼?這裏是我的情況:在非託管回調委託中拋出異常的影響
非託管C:
int return_callback_val(int (*callback)(void))
{
return callback();
}
託管C#:
[DllImport("MyDll.dll")]
static extern int return_callback_val(IntPtr callback);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate int CallbackDelegate();
int Callback()
{
throw new Exception();
}
void Main()
{
CallbackDelegate delegate = new CallbackDelegate(Callback);
IntPtr callback = Marshal.GetFunctionPointerForDelegate(delegate);
int returnedVal = return_callback_val(callback);
}
當你嘗試時會發生什麼? –