Các hệ lụy hoặc hậu quả không được nhận thức của việc ném một ngoại lệ bên trong của một đại biểu được sử dụng trong một cuộc gọi lại không được quản lý là gì? Đây là tình hình của tôi:Những ảnh hưởng của việc ném ngoại lệ trong đại biểu gọi lại không được quản lý
Switch C:
int return_callback_val(int (*callback)(void))
{
return callback();
}
Managed 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);
}
Điều gì sẽ xảy ra khi bạn thử? –