我正在寫一個小應用程序,由gui和幾個按鈕組成。當用戶點擊其中的一個時,程序必須下載一個網頁,進行一對匹配並向gui返回一個值。 問題是,每當用戶點擊該按鈕時,我必須啓動一個新線程,或者有一種線程替代這些小任務(主要是從網上下載內容)?替代線程的小任務不凍結的GUI
1
A
回答
3
你總是需要使用不同的線程。現在你如何使用這些不同的線程取決於你。查看producer/consumer
方法,其中只有一個空閒線程坐在後臺等待工作排隊。這似乎很適合你的工作。在可能的情況下,您還應該使用SwingWorker
,因爲它有助於進行大量GUI更新和刷新。最後,看看java.concurrency
包,因爲它非常有用。現在,我認爲沒有任何理由要手動啓動一個線程,而不使用某些爲您執行所有鎖定和線程的庫。
0
如果您希望該調用是異步的,那就別無選擇。
但是,如果您可以讓您的用戶等待下載完成並處理完畢,則不需要線程。
相關問題
- 1. 任務凍結GUI
- 2. 無凍結替代的Thread.Sleep的任務
- 3. 線程完全凍結GUI
- 4. 簡單的任務沒有凍結gui
- 5. 多線程及的Thread.Sleep凍結GUI
- 6. 任務<T>凍結UI線程
- 7. 如何阻止matplotlib GUI線程凍結?
- 8. 用定時器代替While()循環以防止GUI凍結[多線程?]
- 9. QProcess GUI不凍結
- 10. Python GUI保持凍結,等待線程代碼完成運行
- 11. 如何檢測主線程在GUI中凍結GUI?
- 12. Powershell:凍結GUI
- 13. Tkinter GUI凍結
- 14. QProcess凍結GUI
- 15. scypy.signal.decimate()凍結GUI
- 16. FireDac凍結GUI
- 17. urllib2凍結GUI
- 18. 使用scintilla NET停止在backgroundworker線程中不凍結GUI
- 19. Xcode中的凍結和解凍線程
- 20. WPF應用程序的GUI凍結
- 21. 處理程序凍結GUI的Android
- 22. Java沒有凍結的長時間計算GUI(單線程)
- 23. UI線程凍結
- 24. JavaFX線程凍結
- 25. Delphi線程凍結
- 26. 的Java Swing GUI凍結
- 27. Backgroundworker凍結我的GUI
- 28. JFrame的GUI凍結+幻影
- 29. 凍結並恢復Cocoa任務或線程?
- 30. JavaFX UI在執行新線程任務時凍結
您是否需要爲每個按鈕按下一個單獨的線程,或者您可以只使用一個線程與隊列來管理所有這些事件? – 2011-01-25 18:25:05