Пример #1
0
        private static Dictionary <int, QueueInvoke> mQueueInvoke = new Dictionary <int, QueueInvoke>(); // all instances created at while life time

        private static QueueInvoke GetInstance(string callerFileName, int callerLineNumber)
        {
            lock (mQueueInvoke)
            {
                QueueInvoke value;
                if (!mQueueInvoke.TryGetValue(CalculateHashCode(callerFileName, callerLineNumber), out value))
                {
                    value = new QueueInvoke(callerFileName, callerLineNumber);
                }
                return(value);
            }
        }
Пример #2
0
        /// <summary>
        /// Invoke call, perform handler in the main GUI thread, comparable to Gtk.Application.Invoke, but only last invoke in queue will be executed
        /// </summary>
        /// <param name="handler"></param>
        public static void Invoke(EventHandler handler, [CallerFilePathAttribute] string callerFileName = "", [CallerLineNumberAttribute] int callerLineNumber = 0)
        {
            var instance = QueueInvoke.GetInstance(callerFileName, callerLineNumber);

            instance.Invoke(handler);
        }
Пример #3
0
 private static QueueInvoke GetInstance(string callerFileName, int callerLineNumber)
 {
     lock (mQueueInvoke)
      {
     QueueInvoke value;
     if (!mQueueInvoke.TryGetValue(CalculateHashCode(callerFileName, callerLineNumber), out value))
        value = new QueueInvoke(callerFileName, callerLineNumber);
     return value;
      }
 }