2
A
回答
4
如果您嘗試從主線程而不是線程中顯示窗體,那麼您將遇到類似這樣的奇怪事情。其中最值得注意的是,如果表單和標籤是在非主線程中創建的,那麼您沒有消息循環來處理消息。如果表單是在主線程中創建的,但是您試圖從非主線程中顯示它,那麼由於Windows處理消息和線程的方式可能會導致死鎖。
當創建窗口句柄時,它將綁定到創建窗口句柄的線程。這意味着Windows將確保發送到該句柄的任何消息都在該線程上處理。
我強烈建議您閱讀窗口消息,消息隊列和句柄如何在多線程環境中交互和運行。如果做得不對,你可以確定一些非常奇怪且可能無法預測的行爲。
+1
看起來這個人會受益於一本巨書,就像Marco Cantu的超過800頁的Delphi書籍一樣。 – 2010-02-10 17:00:57
0
我會把你的情況稱爲種族,死鎖或其他類似的錯誤。正如Allen所說,如果後臺線程可以直接訪問VCL控件,而不使用TThread.Synchronize(myMethod)來調用觸及您的VCL前臺的myMethod,那麼這僅僅會導致您的麻煩。
發佈更多信息,包括你的代碼示例。
相關問題
- 1. Delphi線程 - 在等待時凍結
- 2. Delphi OTL多線程UI凍結
- 3. Delphi DBExpress SQLDataSet.ExecSQL凍結
- 4. UI線程凍結
- 5. JavaFX線程凍結
- 6. Delphi遠程調試器凍結
- 7. Xcode中的凍結和解凍線程
- 8. Silverlight UI線程凍結
- 9. Tkinter凍結與多線程
- 10. 凍結管理線程
- 11. 線程完全凍結GUI
- 12. iOS凍結和線程detachNewThreadSelector
- 13. 多線程IDirect3DDevice9 :: CreateDevice凍結
- 14. Timer1凍結UI線程
- 15. 線程凍結UI - Android
- 16. Python線程凍結整個程序?
- 17. Android onPause線程凍結應用程序
- 18. 當Windows XP中的UI線程凍結時System.Timers.Timer凍結
- 19. Delphi:在線程中分配字符串時窗體變爲凍結
- 20. delphi凍結窗口上的屏幕
- 21. PyGTK +線程;窗戶意外凍結
- 22. 線程循環凍結遊戲窗口
- 23. 多線程及的Thread.Sleep凍結GUI
- 24. 當使用多線程時ProgressBar凍結
- 25. 調試Windows窗體線程凍結
- 26. 線程從空DataInputStream凍結readUTF
- 27. Python多線程凍結(?)隨機
- 28. 使用AsyncTask凍結UI線程
- 29. Python線程似乎凍結了機器
- 30. iOS主線程凍結了幾秒鐘
你的代碼是什麼? – 2010-02-04 03:44:34
服務有** no **業務顯示任何窗口。如果右旋鈕旋轉(允許與桌面交互),它可以在較舊的Windows版本中工作,但在Vista中,MS開始積極地阻止其工作。 – mghie 2010-02-04 10:33:16
歡迎來到Stack Overflow,Tea。看起來有人低估了你的問題,因爲寫得不好。爲了將來的參考,如果您添加代碼示例以幫助我們瞭解您正在嘗試執行的操作,它確實會有所幫助。但是,看起來你有很好的,有用的答案,但Mghie和Allen。 – 2010-02-04 17:08:58