[英]Creating wpf controls in background thread
我必須渲染大約10'000個wpf控件,我不想在此操作期間凍結我的應用程序。 是否可以在另一個線程中執行此操作?
我試着用
myStackPanel.Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.SystemIdle,
new NextPrimeDelegate(this.AddButton));
和Dispatcher的另一種變體。 但它總是凍結我的申請。 我想在創建100個控件期間顯示動畫等待屏幕,但它總是凍結,因為它是調度程序的線程。
謝謝你的幫助安德魯。
必須在與調度程序關聯的線程上創建WPF控件。 對Dispatcher.BeginInvoke
的調用會Dispatcher.BeginInvoke
指定的操作以便稍后在調度程序線程上運行,而不是在后台線程上運行。
如果要創建許多UI控件並希望在創建過程中顯示動畫,則需要將要完成的工作分段為可以快速處理的小單元。 然后,您可以以低於正常的優先級調用BeginInvoke
,以單獨處理每個工作單元。
您需要創建10,000個控件的事實是極端的,您應該調查虛擬化控件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.