Лучший способ получить данные mssql, не затрагивая приложение в java swing - PullRequest
1 голос
/ 13 февраля 2012

Привет, ребята, я разрабатываю программу чата с использованием java swing и mssql 2005, для которой я получаю данные из более чем 5 таблиц.каждые 2 секунды .. Но проблема в том, что это влияет на производительность и плавность работы моего приложения ..

Поэтому я попытался использовать Thread, который повысил некоторую производительность ... Есть ли другой способ сделать это, чтобы проверить наличие новыхсообщения и доступность пользователя будут выполняться в одной части, а приложение - в другой части ...?

1 Ответ

3 голосов
/ 13 февраля 2012

Таймер - это то, что нужно использовать для выполнения периодических задач в фоновом режиме.Под капотом используется отдельный поток для выполнения задач, поэтому вам не нужно связываться с потоками самостоятельно.Медлительность вашего Swing-приложения обычно связана с длительными задачами в потоке обработки событий (EDT).Скорее всего, ваша задача таймера - поместить Runnable в EDT, как только вы получите данные для обновления пользовательского интерфейса.Проверьте, что это делает, и убедитесь, что он только обновляет пользовательский интерфейс и не выполняет другую работу, которую можно выполнить в фоновом режиме.Проверьте эффективность того, как вы обновляете пользовательский интерфейс.

См. Документацию Java по Threads и Swing и эту статью по Повышение производительности приложений с помощью SwingWorker (в этом последнем рассказывается о SwingWorker не Timer, а о концепции принятияработа с EDT одинакова).

Если вы разместите некоторый код, мы сможем более точно определить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...