从C#背景实现Java中的线程

Jam*_*ing 4 c# java midi user-interface multithreading

我正在尝试在我的Java GUI应用程序中实现多线程,以便在运行几个密集方法时释放接口.我主要来自C#开发背景,并且在该环境中使用了几次Threads,并没有太多困难.

大致:

C#

  • 创建一个Thread对象
  • 为它分配一个方法来开始
  • 启动线程

现在进入Java应用程序本身,它是一个GUI应用程序,有几个按钮执行不同的操作,应用程序使用MIDI API播放MIDI音符,我有播放,停止和添加单个音符等功能.(需要注意的一点是,我不播放MIDI文件,而是手动创建音符/消息,通过音轨播放).

我想在他们自己的线程中运行三个特定的操作

  1. 播放存储的MIDI音符
  2. 通过文本框显示仪器列表
  3. 生成100个随机笔记

我有一个名为MIDIControl的类,它包含所有必要的功能,例如播放,停止和生成我需要的消息的实际操作.在FooView.Java类中为GUI表单本身创建了此对象的实例,这意味着例如:

  1. 按"生成"
  2. 事件处理程序在FooView.Java类中执行"GenerateNotes"方法
  3. 然后,此方法在MIDIControl实例中执行"生成"方法

我已经看过通过Java实现线程,并且从我看到它以与C#方法不同的方式完成,有人可以向我解释如何在我的情况下实现线程吗?

如有必要,我可以提供代码示例,感谢您的时间.

SLa*_*aks 6

Java线程的创建方式与C#线程相同,只是您将线程传递给Runnable实现而不是委托.(因为Java不支持代理)