Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
    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);
        }
    }