순수 실험 이유로, 나는 2 작업 및 2 개 정적 변수 glo_a
및 glo_count
가 C#을작업이 순차적으로 실행되고 있지 동시에
에 Task
의를 사용하여 사이비 - 난수 생성기를 작성하려합니다. glo_a
은 최종 결과 (7 비트 무작위 이진 정수)를 유지해야합니다.
public static int glo_a = 0, glo_count = 6;
Private void button1_Click(object sender, RoutedEventArgs e)
{
Task task = new Task(() => this.display(1));
Task task2 = new Task(() => this.display(0));
task.Start();
task2.Start();
Task.WaitAll();
textBox1.AppendText("\n" + glo_a);
}
public void display(int j)
{
for (; glo_count >= 0; glo_count--)
{
glo_a += j * (int)Math.Pow(10,glo_count);
}
}
private void refreshbutton_Click(object sender, RoutedEventArgs e)
{
/* reset the original values*/
glo_a = 0;
glo_count = 6;
textBox1.Text = "";
}
제가하는 데 문제는 task
처음 실행하는이며 task2
는 매번 시작되기 전에 완료됩니다. 더 나은 아직
Random r = new Random();
r.Next(2);
나 :
Random r = new Random();
byte[] randomBytes = new byte[7];
r.NextBytes(randomBytes);
어떤 경우에 당신이 할 수있는 이상한 요구 사항이있는 가정, 당신은 단지이 사용하는 "비트"를 생성하지 않는 이유
할 일이 거의 없으므로 거의 놀라운 일이 아닙니다. –