สัญญาณ - การใช้การนับเริ่มต้นคืออะไร?
http://msdn.microsoft.com/en-us/library/system.threading.semaphoreslim.aspx ในการสร้างเซมาฟอร์ฉันต้องระบุจำนวนเริ่มต้นและจำนวนสูงสุด MSDN ระบุว่าการนับเริ่มต้นคือ - จำนวนคำขอเริ่มต้นสำหรับเซมาฟอร์ที่สามารถให้ได้พร้อมกัน แม้ว่าจะระบุว่าจำนวนสูงสุดคือ จำนวนคำขอสูงสุดสำหรับเซมาฟอร์ที่สามารถให้ได้พร้อมกัน ฉันเข้าใจว่าจำนวนสูงสุดคือจำนวนเธรดสูงสุดที่สามารถเข้าถึงทรัพยากรพร้อมกันได้ แต่การใช้การนับเริ่มต้นคืออะไร? ถ้าฉันสร้างเซมาฟอร์โดยมีจำนวนเริ่มต้นเป็น 0 และจำนวนสูงสุดเป็น 2 เธรดพูลเธรดของฉันจะไม่สามารถเข้าถึงทรัพยากรได้ ถ้าฉันตั้งค่าการนับเริ่มต้นเป็น 1 และจำนวนสูงสุดเป็น 2 เธรดพูลเธรดเท่านั้นที่สามารถเข้าถึงทรัพยากรได้ เฉพาะเมื่อฉันตั้งค่าการนับเริ่มต้นและจำนวนสูงสุดเป็น 2 เธรด 2 เธรดเท่านั้นที่สามารถเข้าถึงทรัพยากรได้พร้อมกัน ดังนั้นฉันจึงสับสนจริงๆเกี่ยวกับความสำคัญของการนับเริ่มต้น? SemaphoreSlim semaphoreSlim = new SemaphoreSlim(0, 2); //all threadpool threads wait SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 2);//only one thread has access to the resource at …