gpt4 book ai didi

.net - TPL vs.InvokeRequired/Invoke

转载 作者:行者123 更新时间:2023-12-03 13:15:44 25 4
gpt4 key购买 nike

从.NET 4.0开始,TPL可以执行异步任务。如果您正在阅读msdn,则所有与窗体/UI交互的异步操作仍将使用InvokeRequire ... Invoke()模式。
我要问的是有原因吗?据我了解,TPL应该可以替代旧的线程机制。那么当涉及到UI线程时,忽略它有什么意义呢?
有什么想法吗?

最佳答案

这似乎很主观...

当您说“自.NET 4.0开始”时,您说的是“截至今年四月”-.net已有10年历史了,而InvokeRequired/Invoke已用于最近的9年。为什么MS会破坏所有现有的UI代码出于任何原因?即使存在调用线程的新方法,他们也不会在没有巨大兼容性问题的情况下简单地修改模式。

而且,TPL与InvokeRequired/Invoke不相似-TPL与简单的并行性有关,而调用与在特定线程上运行代码有关。我不确定即使没有兼容性问题,为什么还要替换另一个。

请注意,没有什么可以阻止您使用TPL来确保您在正确的线程上调用UI组件。实际上,您可以轻松地做到这一点。但这取决于您,当前的API不会以不向后兼容的方式进行更改。

关于.net - TPL vs.InvokeRequired/Invoke,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768954/

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