C# thread
C# thread
C#μμ
Thread
λ λ©μΈ ν¨μ(νλ‘κ·Έλ¨ μ§μ μ )κ° λλλ μ€νμ κ³μν μ§ μ¬λΆκ° μ€λ λμ μ’ λ₯μ λ°λΌ λ¬λΌμ§λλ€.
μ€λ λμλ λ κ°μ§ μ’ λ₯κ° μμ΅λλ€:
- ν¬κ·ΈλΌμ΄λ μ€λ λ (Foreground Thread)
- λ°±κ·ΈλΌμ΄λ μ€λ λ (Background Thread)
1. ν¬κ·ΈλΌμ΄λ μ€λ λ (Foreground Thread)
- κΈ°λ³Έμ μΌλ‘ μμ±λ μ€λ λλ ν¬κ·ΈλΌμ΄λ μ€λ λμ λλ€.
- ν¬κ·ΈλΌμ΄λ μ€λ λλ λ©μΈ ν¨μκ° μ’ λ£λλλΌλ μ€λ λκ° λͺ¨λ μ’ λ£λ λκΉμ§ νλ‘κ·Έλ¨μ΄ κ³μ μ€νλ©λλ€.
μμ μ½λ:
using System;
using System.Threading;
class Program
{
static void Main()
{
Thread thread = new Thread(() =>
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine($"μ€λ λ μ€ν μ€: {i}");
Thread.Sleep(1000);
}
});
thread.Start();
Console.WriteLine("λ©μΈ ν¨μ μ’
λ£");
}
}
μΆλ ₯:
λ©μΈ ν¨μ μ’
λ£
μ€λ λ μ€ν μ€: 0
μ€λ λ μ€ν μ€: 1
μ€λ λ μ€ν μ€: 2
...
- λ©μΈ ν¨μκ° λ¨Όμ μ’ λ£λμ§λ§, μ€λ λλ κ³μ μ€νλ©λλ€.
- μ΄μ :
thread
λ ν¬κ·ΈλΌμ΄λ μ€λ λμ΄κΈ° λλ¬Έμ νλ‘κ·Έλ¨μ΄ μ’ λ£λμ§ μμ΅λλ€.
2. λ°±κ·ΈλΌμ΄λ μ€λ λ (Background Thread)
- λ°±κ·ΈλΌμ΄λ μ€λ λλ λ©μΈ ν¨μ μ’ λ£ μ μ¦μ μ€λ¨λ©λλ€.
- λ©μΈ μ€λ λκ° μ’ λ£λλ©΄, λͺ¨λ λ°±κ·ΈλΌμ΄λ μ€λ λλ μ’ λ£λ©λλ€.
λ°±κ·ΈλΌμ΄λ μ€λ λ μ€μ μμ :
using System;
using System.Threading;
class Program
{
static void Main()
{
Thread thread = new Thread(() =>
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine($"μ€λ λ μ€ν μ€: {i}");
Thread.Sleep(1000);
}
});
thread.IsBackground = true; // λ°±κ·ΈλΌμ΄λ μ€λ λλ‘ μ€μ
thread.Start();
Console.WriteLine("λ©μΈ ν¨μ μ’
λ£");
}
}
μΆλ ₯:
λ©μΈ ν¨μ μ’
λ£
- λ©μΈ ν¨μ μ’ λ£μ ν¨κ» λ°±κ·ΈλΌμ΄λ μ€λ λλ μ’ λ£λ©λλ€.
- μ΄μ :
IsBackground = true
λ‘ μ€μ νκΈ° λλ¬Έμ λ°±κ·ΈλΌμ΄λ μ€λ λλ λ©μΈ μ€λ λ μ’ λ£ μ κ°μ μ’ λ£λ©λλ€.
μ 리
- κΈ°λ³Έμ μΌλ‘
Thread
λ ν¬κ·ΈλΌμ΄λ μ€λ λλ‘ μμ±λλ©°, λ©μΈ ν¨μκ° μ’ λ£λμ΄λ κ³μ μ€νλ©λλ€. - μ€λ λλ₯Ό λ°±κ·ΈλΌμ΄λ μ€λ λλ‘ μ€μ νλ €λ©΄
IsBackground = true
λ₯Ό μ€μ ν΄μΌ ν©λλ€. - ν¬κ·ΈλΌμ΄λ μ€λ λ: λ©μΈ μ€λ λ μ’ λ£ νμλ μ€νλ¨.
- λ°±κ·ΈλΌμ΄λ μ€λ λ: λ©μΈ μ€λ λ μ’ λ£ μ ν¨κ» μ’ λ£λ¨.