作为一个爱好最近我一直在做一个钢琴(Midi)到键盘软件,但是我遇到了一个问题,能够同时听和执行几个键我决定使用 if 和 else if,但是我了解程序正在使用来自 cpu 的足够资源以及何时激活 if
注释示例 1:
if (RawNotes.Contains ("Len: 0") == true && RawNotes.Contains ("0 NoteOn Ch: 1 C") == true && RawNotes.Contains ("#") == false)
关闭示例 2 注意:
else if (RawNotes.Contains("Vel") == true && RawNotes.Contains("0 NoteOn Ch: 1 C") == true && RawNotes.Contains("#") == false)
检查 RawNotes 字符串
示例 RawNotes 字符串输出
这个字符串在不断变化,这就是字符串使用 Console.WriteLine(RawNotes) 给我的输出;
0 NoteOn Ch: 1 C3 Vel: 41 Len: 0 //<-- NoteOn
0 TimingClock
0 TimingClock
0 TimingClock
0 TimingClock
0 NoteOn Ch: 1 C3 Vel: 0 // <-- NoteOff
0 AutoSensing
0 TimingClock
而代码的主要部分,自从if这么说以来,它只能执行几秒钟吗?
Thread One = new Thread(() =>
{
while (true)
{
if (RawNotes.Contains ("Len: 0") == true && RawNotes.Contains ("0 NoteOn Ch: 1 C") == true && RawNotes.Contains ("#") == false)
{
sim.Keyboard.KeyDown((VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), Key1)); // <-- The problem
}
else if (RawNotes.Contains("Vel") == true && RawNotes.Contains(MultiHelp + "C") == true && RawNotes.Contains("#") == false)
{
sim.Keyboard.KeyUp((VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), Key1));
//And so on...