簡體   English   中英

為什么BackgroundWorker的ProgressChanged事件在不調用RunWorkerAsync的情況下工作?

[英]Why does the BackgroundWorker's ProgressChanged event work without calling RunWorkerAsync?

我有一個關於BackgroundWorker的問題。 我可以在沒有使用RunWorkerAsync啟動線程的情況下調用ProgressChanged事件。

我不明白為什么會這樣。 如果新線程甚至還沒有啟動,它將如何通知原始線程?

這似乎無論如何都可以工作,因為它在沒有問題的情況下更新了GUI,在我實現BackgroundWorker之前就不是這樣了。

調用ReportProgressChanged()將始終引發ProgressChanged事件,無論它從哪個線程調用。

ReportProgressChanged()內部,有一種機制,如果未從UI線程調用該事件,則會在UI線程上引發事件。 如果ReportProgressChanged() 正在從UI線程調用,那么它只是引發事件,而無需做額外的編組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM