2013-01-23 24 views
5

Kapsamlı SwingWorker sınıfım, GUI kaynaklı giriş değişkenlerini gerektiren, tekrarlayan bir arka plan görevi gerçekleştiriyor.DoInBackground() işlevini her çağırdığımda yeni bir Java SwingWorker örneği oluşturmalı mıyım?

  1. sınıfının yeni instance'a Bunu kullanmak her zaman başlamak ve kurucusuna değişkenleri geçmesi için:

    Ben 2 kodlama seçeneklerini görmek. Sanırım, 'un pek çok örneğe ait olmadığından emin olmam gerekir. Öyleyse nasıl? multiton veya başka bir yöntem?

  2. Değişkenleri güncelleyin ve yürütme işlemini tekrar arayın? Eğer öyleyse ben nasıl kesintiye uğramam?

Bu seçeneklerden biri, gidilecek yoldan mı yoksa daha iyi bir yol var mı?

+0

izin verdi. Bu ucuzluğu nasıl ölçebilirim? – mKorbel

+1

SwingWorker, o yeniden katılımcıya olduğu değil, ben olduğum zaman 5 dakika içinde onaylayacak yeniden – MadProgrammer

cevap

3

Plase kullanım seçeneği 1.

Immutable nesneler normalde çalışmak daha kolaydır. Örneğin, çalışan hala çalışırken değişkenlerin güncellenmesi sorununu önlersiniz ve bellek görünürlüğü hakkında daha az düşünmeniz gerekir.

Nesne somutlaştırması Java'da oldukça ucuzdur, bu nedenle bu bir performans sorunu olmayacaktır ve her seferinde bir gereksinime ihtiyaç duyduğunuzda yeni bir örnek oluşturabilir.

+0

Teşekkür bunu yürütemediğinden ne –

5

SwingWorker, giriş yapamaz, yani aynı şekilde çok fazla yürütemeyeceğiniz anlamına gelir.

SwingWorker yalnızca bir kez yürütülecek tasarlanmıştır javadocs itibaren

. SwingWorker'ı bir kereden fazla yürütmek, doInBackground yöntemini iki kez çağırmaya neden olmaz.

çoklu kullanım ile rellated bu soru belki potansiyel cevaplar için önemli olabileceğini
İlgili konular