我正在尝试在我的Java GUI应用程序中实现多线程,以便在运行一些密集方法时释放界面。我主要来自C#开发背景,并在该环境中使用过线程几次,没有遇到太多困难。
大致而言:
C#
创建一个Thread对象 分配一个要启动的方法 启动线程
现在回到Java应用程序本身,它是一个GUI应用程序,有几个按钮执行不同的操作,应用程序使用MIDI API播放MIDI音符,我有play、stop和adding individual notes等功能。(需要注意的关键是,我不播放MIDI文件,而是手动创建音符/消息,通过轨道播放它们)。
有三个特定的操作,我想在它们自己的线程中运行:
1.播放存储的MIDI音符 2.通过文本框显示乐器列表 3.生成100个随机音符
我有一个名为MIDIControl的类,其中包含所有必要的功能,例如实际的操作,以播放、停止和生成所需的消息。在FooView.Java类中为GUI表单本身创建了此对象的实例,这意味着例如:
按“Generate” 事件处理程序在FooView.Java类中执行“GenerateNotes”方法 然后,此方法在MIDIControl实例中执行“Generate”方法
我已经查看了通过Java实现线程的方法,从我所见,它是以不同的方式完成的,有人能解释一下我如何在我的情况下实现线程吗?
如果需要,我可以提供代码示例,感谢您的时间。
大致而言:
C#
创建一个Thread对象 分配一个要启动的方法 启动线程
现在回到Java应用程序本身,它是一个GUI应用程序,有几个按钮执行不同的操作,应用程序使用MIDI API播放MIDI音符,我有play、stop和adding individual notes等功能。(需要注意的关键是,我不播放MIDI文件,而是手动创建音符/消息,通过轨道播放它们)。
有三个特定的操作,我想在它们自己的线程中运行:
1.播放存储的MIDI音符 2.通过文本框显示乐器列表 3.生成100个随机音符
我有一个名为MIDIControl的类,其中包含所有必要的功能,例如实际的操作,以播放、停止和生成所需的消息。在FooView.Java类中为GUI表单本身创建了此对象的实例,这意味着例如:
按“Generate” 事件处理程序在FooView.Java类中执行“GenerateNotes”方法 然后,此方法在MIDIControl实例中执行“Generate”方法
我已经查看了通过Java实现线程的方法,从我所见,它是以不同的方式完成的,有人能解释一下我如何在我的情况下实现线程吗?
如果需要,我可以提供代码示例,感谢您的时间。