Example #1
0
        /// <summary>
        /// Return if the specified DispatcherOperation is still on the Dispatcher queue.
        /// </summary>
        /// <param name="operation">DispatcherOperation</param>
        /// <returns>true if the dispatcher is still enqueued.  This is not thread safe</returns>
        public static bool IsDispatcherOperationEnqueued(DispatcherOperation operation)
        {
            //

            object itemObj = operation.GetType().InvokeMember("_item",
                                                              BindingFlags.GetField | BindingFlags.Instance | BindingFlags.Public
                                                              | BindingFlags.IgnoreCase | BindingFlags.NonPublic,
                                                              null,
                                                              operation,
                                                              null);

            Type priorityItemType = itemObj.GetType();

            bool value = (bool)priorityItemType.InvokeMember("IsQueued",
                                                             BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public
                                                             | BindingFlags.IgnoreCase | BindingFlags.NonPublic,
                                                             null,
                                                             itemObj,
                                                             null);

            //}


            return(value);
        }
Example #2
0
        /// <summary>
        /// Given a DispatcherOperation, retrieves the value of its "Name" property.
        /// This property is internal, so reflection is used.
        /// </summary>
        /// <param name="operation">DispatcherOperation</param>
        /// <returns>Name property of the provided DispatcherOperation</returns>
        public static String GetNameFromDispatcherOperation(DispatcherOperation operation)
        {
            //

            object nameObj = operation.GetType().InvokeMember("Name",
                                                              BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public
                                                              | BindingFlags.IgnoreCase | BindingFlags.NonPublic,
                                                              null,
                                                              operation,
                                                              null);

            //}
            return(nameObj as String);
        }