- 创建函数采取阵列和索引作为参数。
- 创建一个n元素数组。
- 创建一个n计数循环。
- 上一个新的线程在循环中分配对象的新实例,使用传入的索引数组。
我知道如何管理线程等。我很感兴趣,知道这是线程安全的做事方式。
class Program
{
// bogus object
class SomeObject
{
private int value1;
private int value2;
public SomeObject(int value1, int value2)
{
this.value1 = value1;
this.value2 = value2;
}
}
static void Main(string[] args)
{
var s = new SomeObject[10];
var threads = Environment.ProcessorCount - 1;
var stp = new SmartThreadPool(1000, threads, threads);
for (var i = 0; i < 10; i++)
{
stp.QueueWorkItem(CreateElement, s, i);
}
}
static void CreateElement(SomeObject[] s, int index)
{
s[index] = new SomeObject(index, 2);
}
}
这是完全没有问题的观点,但我会建议不要使用'Environment.ProcessorCount - 1' - 那些可怜的单核人“会是彻头彻尾的不快乐,否则...... – 2009-09-24 17:29:33
还有人用单核心处理器? – Gary 2009-09-24 18:15:31
@Gary有虚拟机,带有“一个”处理器; – IamIC 2011-12-29 10:18:26