Я пытаюсь реализовать многопоточность в своем Java-приложении с графическим интерфейсом, чтобы освободить интерфейс при запуске нескольких интенсивных методов.Я в основном из среды разработки на C # и пару раз использовал Threads в этой среде, не особо задумываясь об этом.
Примерно:
C #
- Создать объект потока
- Назначить ему метод для запуска с
- Начать поток
Теперь в самом приложении JavaЭто приложение с графическим интерфейсом, которое имеет несколько кнопок, которые выполняют различные действия, приложение воспроизводит ноты MIDI с помощью MIDI API, и у меня есть такие функции, как воспроизведение, остановка и добавление отдельных заметок.(Важно отметить, что я не играю MIDI-файлы, а вручную создаю ноты / сообщения, воспроизводя их через дорожку).
Есть три конкретные операции, которые я хочу выполнить в их собственном потоке
- Воспроизведение сохраненных нот MIDI
- Отображение списка инструментов с помощью текстового поля
- Создание 100 случайных нот
У меня есть класс с именемMIDIControl, который содержит все необходимые функции, такие как фактические операции для воспроизведения, остановки и генерирования нужных мне сообщений.Существует экземпляр этого объекта, созданный в классе FooView.Java для самой формы GUI, это означает, например:
- Нажмите «Generate»
- Обработчик событий выполняет «GenerateNotes»"метод в классе FooView.Java
- Этот метод затем выполняет метод" Generate "в экземпляре MIDIControl
Я смотрел на реализацию потоков через Java и из того, что я 'я видел, что это делается не так, как метод C #, кто-нибудь может мне объяснить, как я могу реализовать потоки в моей ситуации?
Я могу предоставить примеры кода, если необходимо, спасибо за ваше время.