私はプログラムを作りようとしています。プログラムを作成しようとしています。プログラムを作るには、数字を入力してください。それを数字に分割し、数字に応じて異なるビープ音を鳴らします。しかし、ビープ音の間には遅延があります。ここではプロジェクトのコードは次のとおりです。Console.Beepループ内の遅延を削除する方法は?
using System;
using System.Collections.Generic;
namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{
int[] numbersWithBeeps = new int [] { 262, 294, 330, 349, 392, 440, 494, 523, 600, 687, 878};
int input;
Console.WriteLine("Please enter the number you would like to play.");
input = Convert.ToInt32(Console.ReadLine());
input*=10;
List<int> actualNumbers = new List<int>();
do{
if(input%10 == 0)
{
actualNumbers.Add(0);
}
else
{
actualNumbers.Add(input%10);
}
input=input/10;
} while(input > 0);
for(int i = actualNumbers.Count - 1; i > 0; i--){
Console.Beep(numbersWithBeeps[actualNumbers[i]], 500);
}
}
}
}
遅延時間はどのくらいですか? –
ビープ音の継続時間を 'Console.Beep'の2番目の引数で変更しようとしましたか?試してみると、ビープ音が鳴るたびに音が鳴り、実際のディレイではないようですが、別のハードウェアで動作させると違うことがあります。 – juharr
[this guy](http://stackoverflow.com/a/1196069/5095502)によると: "別のスレッドからConsole.Beep()を呼び出すと、現在進行中のものは中断されます。"単純に 'if'文のリテラル遅延を繰り返し、新しい' Beep'呼び出しでハードウェアへの呼び出しを遅らせると、潜在的な答えは '878'ビープ音を1つのスレッドに作成してから、*まだ再生中です*別のスレッドで「687」というビープ音が鳴り、878→687の間に遅れなく再生されます。 – Quantic