有關於what each enum does定義的文檔。但是我怎麼能夠在實踐中演示/看到這個?我怎麼可能知道什麼時候使用哪個優先級?瞭解WPF中提供的DispatcherPriority枚舉的真實行爲
下面是我創建的一些代碼,試圖瞭解priorty如何影響排序,它爲我提供了排序正確的證據(第一個循環迭代已將SystemIdle枚舉添加到調度隊列中),但它仍然有加入到最後的字符串
private void btn_Click(object sender, RoutedEventArgs e)
{
StringBuilder result = new StringBuilder();
new Thread(() =>
{
var vals = Enum.GetValues(typeof(DispatcherPriority)).Cast<DispatcherPriority>().Where(y => y >= 0).ToList();
vals.Reverse();
vals.ForEach(x =>
{
Dispatcher.BeginInvoke(new Action(() =>
{
result.AppendLine(string.Format("Priority: {0} Enum:{1}", ((int)x), x.ToString()));
}), x);
});
}).Start();
ShowResultAsync(result, 2000);
}
private async void ShowResultAsync(StringBuilder s, int delay)
{
await Task.Delay(delay);
MessageBox.Show(s.ToString());
}
和輸出順序保持不變,即使在名單反轉(加入這一行vals
被分配剛過):
vals.Reverse();
因此,再次確定我應該分配哪些分派優先級時可以使用更多內容嗎?
可能的重複http://stackoverflow.com/q/18378345/2562358 –
是的,我見過它。但是,這個答案中的兩個環節都不夠。 – William