我的問題屬於Java中的多線程。我正在將我在Visual Basic 2008中編寫的應用程序翻譯成Java。在VB中有一個名爲BackgroundWorker的類,它允許編碼器在另一個線程上執行任務,很像Java中的SwingWorker
。唯一明顯的區別是,使用BackgroundWorker
線程爲run()
,它會在包含要在後臺執行的代碼的主線上觸發名爲DoWork()
的事件。此外,代碼執行後,會在前臺線程上觸發一個RunWorkerCompleted()
事件來解釋結果。從Java中的後臺線程中發起主線事件
我發現BackgroundWorker
安裝非常有用,它看起來比SwingWorker
更靈活,我只是想知道是否可以(並且可以接受)在Java中以相同的方式觸發事件?如果是的話,我會怎麼做呢?由於我只通過SwingWorker
進行了快速掃描,因此它可能具有類似的功能,而且可以正常工作,在這種情況下,我很樂意瞭解這一點。
乾杯,
喧鬧
編輯:
KEWL。歡呼傢伙,感謝您的及時回覆,並對我相當時間不嚴的回覆表示歉意。我會把你的想法放在一個奧斯卡,抱歉coobird,我沒有完全遵循 - 任何進一步的解釋將受到歡迎(也許是一個例子)。
回想一下:我想要一個可運行的類,以便在我的代碼中實例化一個實例。 runnable類有兩個事件,其中一個從後臺線程觸發幷包含要在後臺運行的代碼(DoWork()
),另一個事件在後臺線程完成任務後在前臺線程上觸發(RunWorkerCompleted()
) 。
如果我正確地理解你的建議,我可以火從運行的類run()
方法DoWork()
事件,因此,它會在後臺線程來執行,然後我可以使用SwingUtilities.invokeLater()
方法火RunWorkerCompleted()
事件上前景線程,一旦後臺線程完成執行。
是嗎?
葉氏是看好 – OscarRyz 2008-12-06 03:44:01