0
3つのスレッドを作成しようとしています。各スレッドはプレーヤーであり、3回のショットを持つ。ショットはスレッドからランダムに生成された番号です。私はこれを試しましたスレッドをランダムに生成された番号に設定するには
static int counter = 0;
static Thread player1 = new Thread(new ThreadStart(Player1Shot));
static Thread player2 = new Thread(new ThreadStart(Player2Shot));
static Thread player3 = new Thread(new ThreadStart(Player3Shot));
static readonly ThreadLocal<Random> random =
new ThreadLocal<Random>(() => new Random(Interlocked.Increment(ref counter)));
static void Main(string[] args)
{
player1.Name = "David";
player2.Name = "James";
player3.Name = "Mike";
player1.Start();
player2.Start();
player3.Start();
//Console.WriteLine("{0}", random.Value.Next());
Console.ReadLine();
}
public static void Player1Shot()
{
try
{
for (int i = 0; i < 3; i++)
{
Console.WriteLine("{0} shot {1}\n", Thread.CurrentThread.Name, random.Value.Next());
}
}
しかし、私は乱数を0から100の間にしますか?これは可能ですか?あなたの要件が何であるか...もっと何か考える
を「このことは可能ですか?」私はあなたのコードを実行しようとしたと思いますか?結果は何でしたか? –
@MongZhu、['Random.Next()'](https://msdn.microsoft.com/en-us/library/9b3ta19y(v = vs.110).aspx)より大きい値を返すことがあります(最大[int .MaxValue](https://msdn.microsoft.com/en-us/library/system.int32.maxvalue(v = vs.110).aspx))。 – Sinatr
はい、6桁の数字が生成されます。 0〜100の数字のみを使用したい –