- 創建函數採取陣列和索引作爲參數。
- 創建一個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