什麼是習慣Clojure方式創造一個線程在後臺循環做更新對一些共享裁判並且管理它的生活?我發現自己使用future
來做這件事,但這感覺就像是一點點黑客,因爲我從不回報有意義的價值。例如: -產生和管理後臺線程的習慣Clojure方式
(future (loop [] (do
(Thread/sleep 100)
(dosync (...))
(recur))))
而且,我必須要小心future-cancel
這個時候不再需要後臺處理。關於如何在Clojure/Swing應用程序中進行編排的任何提示都會很好。例如。一個虛擬的JComponent
被添加到我的UI中,當窗口關閉時負責消除線程可能是一個想法。
調用'未來cancel'或「請取消」標誌量確實設置爲相同的事情。我仍然需要確保它在正確的時間和穩健的情況下發生。 (我想念RAII) – pauldoo 2011-03-13 20:54:25
關於'do'和'while'的其他觀點當然是正確的。 :) – pauldoo 2011-03-13 20:55:07
我不認爲我說你應該設置一個取消請求的標誌。如果您的後臺任務將在例如一千次迭代之後完成,或者窗口已關閉,則未來可以跟蹤這些事情並關閉它。有些東西比較複雜,需要更詳細的管理,對於那些你可能會使用未來取消的東西。 – amalloy 2011-03-13 23:17:27