ในตัวอย่างนี้ใช้คอนสตรัคเตอร์ Thread(ThreadStart)
มาดูที่เวอร์ชันของโค้ดที่ใช้ ParameterizedThreadStart
ในการส่งค่าที่จำกัดจำนวนครั้งของการวนลูป while
:
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
var bgThread = new Thread((object? data) =>
{
if (data is null) return;
int counter = 0;
var result = int.TryParse(data.ToString(), out int maxCount);
if (!result) return;
while (counter < maxCount)
{
Console.WriteLine($"Background thread working... Iteration: {counter + 1}");
Thread.Sleep(100);
counter++;
}
});
bgThread.IsBackground = true;
bgThread.Start(5); // กำหนดให้วนลูป 5 ครั้ง
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Main thread working...");
Task.Delay(500).Wait();
}
Console.WriteLine("Done!");
Console.ReadKey();
}
}