Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 3
.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 4
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 4
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 4
.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 5
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 5
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 5
.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 6
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 6
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 6
....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 7
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 7
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 7
.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 8
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 8
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 8
.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 9
ΠΠΎΡΠΎΠΌΠΎΠΊ #3 Π·Π°Π²Π΅ΡΡΠ΅Π½.
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 9
ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π·Π°Π²Π΅ΡΡΠ΅Π½.
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 9
ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π½Π°ΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π¦Π. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², Π²Π»ΠΈΡΡΡΠΈΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°
ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π»ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Count. ΠΠΎ Π²Π΅Π΄Ρ ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π»ΡΡΡΠ΅Π΅ ΠΈ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠ΅ Π΄Π»Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ°Π²Π΄Π°, Π² ΠΊΠ»Π°ΡΡΠ΅ Thread ΠΈΠΌΠ΅ΡΡΡΡ Π΄Π²Π° Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°. Π‘ ΡΡΠΎΠΉ ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠΏΡΠΎΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ IsAlive, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
public bool IsAlive { get; }
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ IsAlive Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠ»Ρ "ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½ΠΈΡ" ΡΠ²ΠΎΠΉΡΡΠ²Π° IsAlive ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ΄Π° Π² ΠΊΠ»Π°ΡΡΠ΅ MoreThread ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ IsAlive Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²,
class MoreThreads {
static void Main() {
Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠ°Ρ.");
// Π‘ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ°.
MyThread mt1 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #1");
MyThread mt2 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #2");
MyThread mt3 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #3");
do {
Console.Write(".");
Thread.Sleep(100);
} while (mt1.Thrd.IsAlive &&
mt2.Thrd.IsAlive &&
mt3.Thrd.IsAlive);
Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.");
}
}
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ IsAlive Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° Join(). ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΡΠΎΡΠΌΠ°.
public void Join()
ΠΠ΅ΡΠΎΠ΄ Join() ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΊ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½, Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ. ΠΠ³ΠΎ ΠΈΠΌΡ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡ ΠΊ Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π±ΡΠ» Π½Π°ΡΠ°Ρ, ΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ThreadStateException. Π Π΄ΡΡΠ³ΠΈΡ ΡΠΎΡΠΌΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° Join() ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ Join() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ.
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Join().
using System;
using System.Threading;
class MyThread {
public int Count;
public Thread Thrd;
public MyThread(string name) {
Count = 0;
Thrd = new Thread(this.Run);
Thrd.Name = name;
Thrd.Start();
}
// Π’ΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ,
void Run() {
Console.WriteLine(Thrd.Name + " Π½Π°ΡΠ°Ρ.");
do {
Thread.Sleep(500);
Console.WriteLine ("Π ΠΏΠΎΡΠΎΠΊΠ΅ " + Thrd.Name +
", Count = " + Count);
Count++;
} while(Count < 10);
Console.WriteLine(Thrd.Name + " Π·Π°Π²Π΅ΡΡΠ΅Π½.");
}
}
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Join() Π΄Π»Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ,
// ΠΏΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡ,
class JoinThreads {
static void Main() {
Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠ°Ρ.");
// Π‘ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ°.
MyThread mt1 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #1");
MyThread mt2 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #2");
MyThread mt3 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #3");
mt1.Thrd.Join();
Console.WriteLine("ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.");
mt2.Thrd.Join();
Console.WriteLine("ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.");
mt3.Thrd.Join();
Console.WriteLine("ΠΠΎΡΠΎΠΌΠΎΠΊ #3 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.");
Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.");
}
}
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², Π²Π»ΠΈΡΡΡΠΈΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠ°Ρ.
ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π½Π°ΡΠ°Ρ.
ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π½Π°ΡΠ°Ρ.
ΠΠΎΡΠΎΠΌΠΎΠΊ #3 Π½Π°ΡΠ°Ρ.
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 0
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 0
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 0
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 1
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 1
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 1
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 2
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 2
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 2
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 3
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 3
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 3
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 4
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 4
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 4
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 5
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 5
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 5
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 6
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 6
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 6
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 7
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 7
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 7
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 8
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 8
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 8
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 9
ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π·Π°Π²Π΅ΡΡΠ΅Π½.
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 9
Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 9
ΠΠΎΡΠΎΠΌΠΎΠΊ #3 Π·Π°Π²Π΅ΡΡΠ΅Π½.
ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.
ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.
ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.
ΠΠΎΡΠΎΠΌΠΎΠΊ #3 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΄Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Join().
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠΎΠΊΡ
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΡΡΠ΅Π΄Π΅ .NET Framework Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΠΎΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π»ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ»ΡΠΆΠΈΠ²ΡΠ΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ, Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΎ ΠΊ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΠ΄ΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠΎ ΡΡΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π±ΡΠ» Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΡΡΡΠ°Π½Π΅Π½, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΏΠΎΡΠΎΠΊΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΎΡΠΌΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Start(), ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Thread, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ»ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ.