Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เธรดและการซิงโครไนซ์เธรดใน C #


เมื่อใช้การซิงโครไนซ์ คุณจะซิงโครไนซ์การเข้าถึงทรัพยากรในแอปพลิเคชันแบบมัลติเธรดได้

สามารถใช้ mutex เพื่อซิงโครไนซ์เธรดระหว่างกระบวนการ ใช้เพื่อป้องกันการเรียกใช้บล็อกโค้ดพร้อมกันมากกว่าหนึ่งเธรดในแต่ละครั้ง

คำสั่งล็อค C# ถูกใช้เพื่อให้แน่ใจว่าบล็อกของรหัสทำงานโดยไม่ขัดจังหวะโดยเธรดอื่น ได้การล็อกการยกเว้นร่วมสำหรับออบเจ็กต์ที่กำหนดในช่วงระยะเวลาของการบล็อกโค้ด

เธรดพูลใน C # คือชุดของเธรด ใช้สำหรับทำงานเบื้องหลัง เมื่อเธรดเสร็จสิ้นภารกิจ เธรดจะถูกส่งไปยังคิวซึ่งมีเธรดที่รอทั้งหมดอยู่ วิธีนี้ใช้ซ้ำได้

ให้เราดูวิธีการสร้างเธรดพูล

ประการแรก ใช้เนมสเปซต่อไปนี้ −

using System.Threading;

ตอนนี้ เรียกคลาส threadpool โดยใช้อ็อบเจ็กต์ threadpool เรียกเมธอด QueueUserWorkItem

ThreadPool.QueueUserWorkItem(new WaitCallback(Run));

คลาส Mutex ใน C# เป็นพื้นฐานการซิงโครไนซ์ที่สามารถใช้สำหรับการซิงโครไนซ์ระหว่างกระบวนการได้

ให้เราดูวิธีสร้าง Mutex ใหม่ -

private static Mutex m = new Mutex();