簡體   English   中英

為什么在不同線程中運行某些東西時 UI 線程會被阻塞?

[英]Why does the UI thread get blocked when running something in a different thread?

假設我有正常button.Click事件。

如果我嘗試從該事件內部訪問 UI 元素,我可能會得到不需要的行為 - 甚至是異常(在調試時)。 在這種情況下,通常的例外情況是: ...cannot access UI elements from thread different than they were created in

由於這是另一個線程(與主線程不同),為什么當我在事件中執行耗時的操作時我的 UI 會被阻塞?

這里的框架是什么? 贏形式? WPF?

在 winform(對於單擊事件)中,位於 UI 線程上。 所以你可以通過點擊事件與 UI 對話。 如果發生了其他事情,那就有問題了。 你確定你不在計時器回調中嗎?

在更一般的意義上,您可以使用InvokeRequired / Invoke等將控制權傳遞給 UI 線程。

暫無
暫無

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

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