本文共 1665 字,大约阅读时间需要 5 分钟。
////// Designates a Windows Presentation Foundation application model with added functionalities. /// public class UIHelper : CLeopardTestWPF { private static DispatcherOperationCallback exitFrameCallback = new DispatcherOperationCallback(ExitFrame); ////// Processes all UI messages currently in the message queue. /// public static void DoEvents() { // Create new nested message pump. DispatcherFrame nestedFrame = new DispatcherFrame(); // Dispatch a callback to the current message queue, when getting called, // this callback will end the nested message loop. // note that the priority of this callback should be lower than the that of UI event messages. DispatcherOperation exitOperation = Dispatcher.CurrentDispatcher.BeginInvoke( DispatcherPriority.Background, exitFrameCallback, nestedFrame); // pump the nested message loop, the nested message loop will // immediately process the messages left inside the message queue. Dispatcher.PushFrame(nestedFrame); // If the "exitFrame" callback doesn't get finished, Abort it. if (exitOperation.Status != DispatcherOperationStatus.Completed) { exitOperation.Abort(); } } private static Object ExitFrame(Object state) { DispatcherFrame frame = state as DispatcherFrame; // Exit the nested message loop. if (frame != null) { frame.Continue = false; } return null; } }
转载地址:http://stnmb.baihongyu.com/