public static bool Remove(TimeoutHandler hndlr) { bool result = false; ArrayList keys = new ArrayList(); lock (Source.source_handlers) { foreach (uint code in Source.source_handlers.Keys) { TimeoutProxy p = Source.source_handlers [code] as TimeoutProxy; if (p != null && p.real_handler == hndlr) { keys.Add(code); result = g_source_remove_by_funcs_user_data(p.proxy_handler, IntPtr.Zero); } } foreach (object key in keys) { Source.source_handlers.Remove(key); } } return(result); }
public static bool Remove(TimeoutHandler hndlr) { bool result = false; List <uint> keys = new List <uint> (); lock (Source.source_handlers) { foreach (uint code in Source.source_handlers.Keys) { TimeoutProxy p = Source.source_handlers [code] as TimeoutProxy; if (p != null && p.real_handler == hndlr) { keys.Add(code); result = g_source_remove(code); } } foreach (object key in keys) { Source.source_handlers.Remove(key); } } return(result); }
public static uint AddSeconds(uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy(hndlr); p.ID = g_timeout_add_seconds(interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero); Source.AddSourceHandler(p.ID, p); return(p.ID); }
public static uint Add(uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy(hndlr); p.ID = g_timeout_add(interval, p.Handler, IntPtr.Zero); Source.Add(p); return(p.ID); }
public static uint Add (uint interval, TimeoutHandler hndlr, Priority priority) { TimeoutProxy p = new TimeoutProxy (hndlr); p.ID = g_timeout_add_full ((int)priority, interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero, null); Source.AddSourceHandler (p.ID, p); return p.ID; }
public static uint Add(uint interval, TimeoutHandler hndlr, Priority priority) { TimeoutProxy p = new TimeoutProxy(hndlr); p.ID = g_timeout_add_full((int)priority, interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero, null); Source.AddSourceHandler(p.ID, p); return(p.ID); }
public static uint Add (uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy (hndlr); p.ID = g_timeout_add (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero); Source.AddSourceHandler (p.ID, p); return p.ID; }
public static uint AddSeconds(uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy (hndlr); p.ID = g_timeout_add_seconds (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero); lock (Source.source_handlers) Source.source_handlers [p.ID] = p; return p.ID; }
public static uint Add(uint interval, TimeoutHandler hndlr, Priority priority) { TimeoutProxy p = new TimeoutProxy (hndlr); p.ID = g_timeout_add_full ((int)priority, interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero, null); lock (Source.source_handlers) Source.source_handlers [p.ID] = p; return p.ID; }
public static uint Add(uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy(hndlr); p.ID = g_timeout_add(interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero); lock (Source.source_handlers) Source.source_handlers [p.ID] = p; return(p.ID); }
public static uint Add(uint interval, TimeoutHandler handler) { var proxy = new TimeoutProxy (handler); uint code = clutter_threads_add_timeout (interval, (TimeoutHandlerInternal)proxy.proxy_handler, IntPtr.Zero); lock (Source.source_handlers) { Source.source_handlers[code] = proxy; } return code; }
public static uint Add(uint interval, TimeoutHandler handler) { var proxy = new TimeoutProxy(handler); uint code = clutter_threads_add_timeout(interval, (TimeoutHandlerInternal)proxy.proxy_handler, IntPtr.Zero); lock (Source.source_handlers) { Source.source_handlers[code] = proxy; } return(code); }
public static uint Add(uint interval, TimeoutHandler hndlr, Priority priority) { TimeoutProxy p = new TimeoutProxy(hndlr); lock (p) { var gch = GCHandle.Alloc(p); var userData = GCHandle.ToIntPtr(gch); p.ID = g_timeout_add_full((int)priority, interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero, null); } return(p.ID); }
public static uint Add(uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy(hndlr); lock (p) { var gch = GCHandle.Alloc(p); var userData = GCHandle.ToIntPtr(gch); p.ID = g_timeout_add_full(0, interval, (TimeoutHandlerInternal)p.proxy_handler, userData, DestroyHelper.NotifyHandler); } return(p.ID); }
public override void Send(SendOrPostCallback d, object state) { if (Runtime.IsMainThread) { d(state); return; } using (var ob = new ManualResetEventSlim(false)) { var proxy = new TimeoutProxy(d, state, ob); AddTimeout(proxy); ob.Wait(); } }
static void AddTimeout(TimeoutProxy proxy) { if (proxy.d == null) { // Create an exception without throwing it, as throwing is expensive and these exceptions can be // hit a lot of times. const string exceptionMessage = "Unexpected null delegate sent to synchronization context"; LoggingService.LogInternalError(exceptionMessage, new ExceptionWithStackTraceWithoutThrowing(exceptionMessage)); // Return here without queueing the UI operation. Async calls which await on the given callback // will continue immediately, but at least we won't crash. // Having a null continuation won't do anything anyway. return; } var gch = GCHandle.Alloc(proxy); g_timeout_add_full(defaultPriority, 0, TimeoutProxy.SourceHandler, (IntPtr)gch, GLib.DestroyHelper.NotifyHandler); }
public override void Post(SendOrPostCallback d, object state) { var proxy = new TimeoutProxy(d, state); AddTimeout(proxy); }
static void AddTimeout(TimeoutProxy proxy) { var gch = GCHandle.Alloc(proxy); g_timeout_add_full(defaultPriority, 0, TimeoutProxy.SourceHandler, (IntPtr)gch, GLib.DestroyHelper.NotifyHandler); }