我有不同的情況,比在this question,因此另一個問題。InvokeAsync命令
讓我們下面的例子:
void PerformanceCriticalMethod()
{
Dispatcher.Invoke(() => Log.Add("1"));
... some job
Dispatcher.Invoke(() => Log.Add("2"));
}
Invoke
產生的性能問題。在試圖解決它,我代替Invoke
使用InvokeAsync
並似乎工作,但什麼2
將輸出1
後是很重要的。
我可以依靠假設如果兩個InvokeAsync
從同一個線程調用,他們將按相同的順序執行?我的winapi的螺母告訴我這是真的,但我想確定。
而作爲連接彼此相關的問題是一樣的:如果同樣的方法是通過InvokeAsync
行動從不同的線程調用,多麼好機會,有它第一次執行線程誰早叫InvokeAsync
?
P.S .:我有感覺問題應該改寫爲「InvokeAsync的工作方式」,但「訂單」這個詞可能是人們(包括我)嘗試搜索的100%候選人。
這個答案非常接近我想知道的。好吧,它使用'PriorityQueue',所以它**必須**以相同的順序(至少我的希望現在有確認)。但我在那裏看到一個「鎖」,它有什麼作用? – Sinatr
看起來像是在多線程的情況下,由於這個鎖,它將以相同的順序執行。 – olegk