gpt4 book ai didi

c# - InvokeAsync 命令

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:45 25 4
gpt4 key购买 nike

我有不同的场景,而不是 this question ,因此另一个问题。

让我们举个例子:

void PerformanceCriticalMethod()
{
Dispatcher.Invoke(() => Log.Add("1"));
... some job
Dispatcher.Invoke(() => Log.Add("2"));
}

Invoke 会产生性能问题。为了修复它,我使用 InvokeAsync 代替了 Invoke 并且它似乎有效,但重要的是 2 将在 1 之后输出。

如果从同一个线程调用两个 InvokeAsync,它们将以相同的顺序执行,我可以依赖假设吗?我的 winapi's nut 告诉我这是真的,但我想确定一下。

另一个相关问题与链接问题相同:如果通过来自不同线程的 InvokeAsync 操作调用相同的方法,那么调用 InvokeAsync< 的线程首先执行它的机会有多大 更早?

P.S.:我觉得问题应该改写为“InvokeAsync 的工作原理”,但“顺序”一词可能 100% 可能是人们(包括我)将尝试搜索的内容。

最佳答案

请检查一下http://referencesource.microsoft.com/#WindowsBase/Base/System/Windows/Threading/Dispatcher.cs,1045

当您调用 InvokeAsync 时,会将一个操作放入 PriorityQueue,因此我想如果您以相同的优先级调用多个操作,您可以确信这些操作将以相同的顺序执行。

关于c# - InvokeAsync 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com