/// <param name="func">No description supplied.</param> public void Call(EflThreadIOCall func) { GCHandle func_handle = GCHandle.Alloc(func); Efl.IThreadIOConcrete.NativeMethods.efl_threadio_call_ptr.Value.Delegate(this.NativeHandle, GCHandle.ToIntPtr(func_handle), EflThreadIOCallWrapper.Cb, Efl.Eo.Globals.free_gchandle); Eina.Error.RaiseIfUnhandledException(); }
internal static void Cb(IntPtr cb_data, Efl.Event.NativeStruct kw_event) { GCHandle handle = GCHandle.FromIntPtr(cb_data); EflThreadIOCall cb = (EflThreadIOCall)handle.Target; try { cb(kw_event); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } }