【发布时间】:2014-05-13 00:44:46
【问题描述】:
我有一个生成随机数的简单类:
public class Bar
{
Random rnd = new Random();
public int GenerateRandomNumber()
{
return rnd.Next(1, 100);
}
}
然后我在第二堂课中使用它,在那里我创建了两个线程。每个线程都使用 bar 类中的函数在控制台自己的 id 和随机数上写入。如下所示:
public class Foo
{
Thread t1;
Thread t2;
Bar bar;
public Foo(Bar bar)
{
t1 = new Thread(GetRandomNumber);
t2 = new Thread(GetRandomNumber);
this.bar = bar;
}
public void Start()
{
t1.Start();
t2.Start();
}
private void GetRandomNumber()
{
Console.WriteLine("Thread {0} {1}", Thread.CurrentThread.ManagedThreadId,bar.GenerateRandomNumber());
}
}
所以我主要有:
static void Main(string[] args)
{
Bar bar1 = new Bar();
Bar bar2 = new Bar();
Foo f1 = new Foo(bar1);
Foo f2 = new Foo(bar2);
f1.Start();
f2.Start();
Console.ReadLine();
}
在控制台中,我可以得到一些类似的想法:
Thread 11 34
Thread 12 9
Thread 13 34
Thread 14 9
我的问题是我可以做些什么来为每个线程获取另一个数字?
【问题讨论】:
标签: c# multithreading