當使用CreateEx
並其代碼在它自己的線程或其父(即,在其中執行其實例化代碼的線程)的執行創建一個新窗口?謝謝。創建視窗和線程 - C++
回答
否,創建窗口不啓動新的線程
感謝。接受爲第一個回答。 – 2010-11-19 22:26:06
沒問題,只是問) – 2010-11-19 22:27:01
窗口沒有真正運行在自己的任何代碼,所有的代碼從消息循環這是你自己的代碼部分調用。嘗試與多個線程交互的Windows UI可能會遇到大問題,因此您應該始終在單個線程中響應這些消息。
+1「你應該總是在一個單一的線程內迴應消息。」 – 2010-11-19 22:07:30
謝謝。 +1的細節。 – 2010-11-19 22:26:32
CreateWindowEx()不會創建一個新的線程。如果您想要新線程,則必須撥打 _beginthreadex()(通常優選)或CreateThread()。
如果你想知道,_beginthreadex()
優於CreateThread()
,因爲前者初始化後者沒有的CRT部分。
Windows系統有線程關聯 - 看到在這個問題上Raymond Chen的article。
跨線程GUI的東西通常在災難中結束。窗口庫通過拋出異常來積極阻止它。
即使是允許的,CreateWindowEx無法在默認情況下,因爲這將使得你的代碼(鎖,線程安全等),一些非常大的假設做到這一點;大多數Windows開發大概仍然是單線程的。
- 1. c,創建線程和線程函數
- 2. 在新窗口中創建線程C++
- 3. C#新窗體在線程中創建
- 4. 監視線程創建
- 5. 創建多個線程C++
- 6. 在C#中創建線程
- 7. 循環和線程創建
- 8. 從非GUI線程創建窗體
- 9. 創建多線程窗口服務
- 10. 線程阻止窗口正在創建
- 11. 線程和創建對象
- 12. 創建和銷燬線程
- 13. C# - 跨線程操作 - 在線程創建控制,添加到主窗體
- 14. C#線程在窗口服務創建問題
- 15. 我如何在C中創建一個多線程窗口?
- 16. 線程創建
- 17. 線程創建
- 18. 在另一個線程創建窗口(不是主線程)
- 19. JNI線程創建
- 20. C#線程和窗體:NotSupportedException - 使用Control.Invoke?
- 21. 創建線程
- 22. 創建Windows窗體C#應用程序
- 23. 更好的路線和創建視圖
- 24. 在後臺線程上創建視圖,在主線程中添加主視圖
- 25. 線程和窗體
- 26. OpenMP任務和線程創建
- 27. 線程監視C#
- 28. 在C++中創建線程時出錯
- 29. 用DotNetZip創建C#線程文件
- 30. C# - 並行Foreach緩慢創建線程
您可以使用調試器 – Andrew 2010-11-19 21:50:28
看看這可以幫助你:http://support.microsoft.com/kb/90975/en-us – 2010-11-19 21:53:43