gpt4 book ai didi

c# - webClient.DownloadDataCompleted 事件

转载 作者:行者123 更新时间:2023-11-30 16:10:14 25 4
gpt4 key购买 nike

小而简单的问题(奇怪的是我无法在这里或通过谷歌找到答案)。当 webClient.DownloadDataCompleted 引发事件时,它是在 ui 线程还是 DownloadDataAsyn 线程上引发的?这意味着我需要使用 beginInvoke (winform) 来更新 ui 还是直接访问 Ui 控件。

当然我可以测试它,但这是基本问题:事件处理程序通常在执行的线程上引发,对吗?所以我怀疑这里确实需要 beginInvoke 如果不是,原因是什么?

最佳答案

WebClient 知道当前线程的同步上下文。

如果您在 UI 线程上调用 DownloadDataAsync,DownloadDataCompleted 将发布到该 UI 线程。

UI 线程以外的线程通常没有同步上下文,在此类线程上启动 DownloadDataAsync 将导致 DownloadDataCompleted 在任何可用线程上运行。

“C# 5.0 in an Nutshell”一书描述了富客户端中的同步上下文。

关于c# - webClient.DownloadDataCompleted 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26195542/

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