(Threading Tutorial) บางครั้งที่เราเขียนโปรแกรมเราอาจจะให้โปรแกรมทำงานเป็นงานๆไป จนกว่าจะเสร็จกระบวนการแล้วค่อยทำงานชิ้นต่อไป แต่ในโลกความเป็นจริงคอมพิวเตอร์จำเป็นต้องทำงานหลายๆงานพร้อมกัน จึงทำให้เกิดเธรดขึ้นมาเพื่อนแยกการทำงานเพื่อให้งานเสร็จไวขึ้น พูดง่ายๆ ก็เหมือนกับคนเราเวลาดูโทรทัศน์ที่จะต้องฟังเสียงและดูภาพไปพร้อมๆกัน หัวข้อนี้ผมจะมาลองเขียน Thread แบบง่ายๆโดยมีโจทย์ให้เขียนโปรแกรมโดยให้ฟังก์ชันแรกปริ้นข้อความไปสักพักแล้วให้อีกฟังก์ชันปริ้นอีกข้อความขึ้นพร้อมๆกัน
โดยขั้นแรกเราจะมาเขียนฟังก์ชั่นปริ้นค่าก่อนด้วยโค๊ดต่อไปนี้
public static void Thread1() { for (int i = 0; i < 10; i++) { Console.WriteLine("Thread 1"); Thread.Sleep(1000); } } public static void Thread2() { for (int i = 0; i < 10; i++) { Console.WriteLine("Thread 2"); Thread.Sleep(1000); } }จะสังเกตว่า 2 ฟังก์ชันนี้เหมือนกันนะครับ จะสังเกตเห็น Thread.Sleep(1000); อันนี้คือผมจะให้มันหยุดไปชั่วขณะ 1 วินาทีก่อนที่จะทำรอบต่อไป อ่อ ! อย่าลืม using System.Threading; นะครับเวลาเรียกใช้ Thread ตามโจทย์ก็คือผมจะให้ฟังก์ชัน Thread1 ทำงานไปประมาณ 5 วินาทีแล้วจะให้ฟังก์ชัน Thread2 ทำงานและสองฟังก์ชันนี้จะทำงานไปพร้อมๆกันครับ
ต่อมาใน main ฟังก์ชันเราจะเขียนโค๊ดดังต่อไปนี้ครับ
static void Main(string[] args) { Thread threadA = new Thread(new ThreadStart(Thread1)); Thread threadB = new Thread(new ThreadStart(Thread2)); threadA.Start(); Thread.Sleep(5000); //Delay 5s threadB.Start(); }เข้าใจกันง่ายๆก็เหมือนกับว่าเราสร้าง Thread ขึ้นมาแล้วสั่งให้มันเริ่มทำงานนั่นแหละครับเดี๋ยวลองดูการรันโปรแกรมของผมดูนะครับ ว่าผลจะเป็นยังไง ^_^