WPF 中的 DoEvents

在看 MSDN 的时候发现了一段比较实用的代码,能在 WPF 下能执行与System.Windows.Forms.Application.DoEvents方法类似的功能。以下对 MSDN 中的代码进行了微调,微调主要集中在DispatcherPriority.SystemIdle 附近。

Imports System.Security.Permissions  
Imports System.Windows.Threading  

''' <summary>  
''' 处理当前在工作项队列的所有帧。  
''' </summary>  
<SecurityPermissionAttribute(SecurityAction.Demand,   
Flags:=SecurityPermissionFlag.UnmanagedCode)>  
Public Sub DoEvents()  
    Dim frame As New DispatcherFrame()  
    Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.SystemIdle, Sub(f As 
        DispatcherFrame) f.Continue = False, frame)  
    Dispatcher.PushFrame(frame)  
End Sub
Content is available under CC BY-SA 3.0 unless otherwise noted.