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

โปรแกรม C# สร้าง Thread Pool

สำหรับ Thread Pool ให้สร้างเมธอดมากกว่าสองเมธอด และนำเมธอดเหล่านั้นไปคิว (Queue) เพื่อรอการทำงาน

ขั้นตอนการสร้าง

1. สร้างเมธอดตัวอย่าง:

public void one(object o) {
    for (int i = 0; i <= 3; i++) {
        Console.WriteLine("One executed");
    }
}

2. สร้างเมธอดเพิ่มเติม (two, three) แล้วใช้ ThreadPool.QueueUserWorkItem เพื่อคิวเมธอดเหล่านั้น:

Demo d = new Demo();
for (int i = 0; i < 3; i++) {
    ThreadPool.QueueUserWorkItem(new WaitCallback(d.one));
    ThreadPool.QueueUserWorkItem(new WaitCallback(d.two));
    ThreadPool.QueueUserWorkItem(new WaitCallback(d.three));
}

ตัวอย่างโค้ดเต็ม

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
class Demo {
    public void one(object o) {
        for (int i = 0; i <= 3; i++) {
            Console.WriteLine("One executed");
        }
    }
    public void two(object o) {
        for (int i = 0; i <= 3; i++) {
            Console.WriteLine("Two executed");
        }
    }
    public void three(object o) {
        for (int i = 0; i <= 3; i++) {
            Console.WriteLine("Three executed");
        }
    }
    static void Main() {
        Demo d = new Demo();
        for (int i = 0; i < 3; i++) {
            ThreadPool.QueueUserWorkItem(new WaitCallback(d.one));
            ThreadPool.QueueUserWorkItem(new WaitCallback(d.two));
            ThreadPool.QueueUserWorkItem(new WaitCallback(d.three));
        }
        Console.Read();
    }
}

ผลลัพธ์ (ตัวอย่าง)

Two executed
Two executed
Two executed
Two executed
Two executed
Two executed
Two executed
One executed
One executed
One executed
One executed
One executed
Two executed
Two executed
Three executed
Three executed
Two executed
One executed
Three executed
Two executed
Three executed
One executed
One executed
One executed

หมายเหตุ: ลำดับการทำงานอาจแตกต่างกันไปในแต่ละครั้งที่รัน เพราะขึ้นอยู่กับการจัดตารางเวลาของ Thread Pool