【发布时间】:2011-08-19 22:49:27
【问题描述】:
出于纯粹的实验原因,我正在尝试在 C# 中使用 Tasks 编写一个伪随机数生成器
我有 2 个任务和 2 个静态变量 glo_a 和 glo_count。 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 每次开始之前完成。
【问题讨论】:
-
要做的任务很少,这不足为奇。
标签: c# .net multithreading task-parallel-library static-variables