Π Π°Π·Π»ΠΈΡΠ°ΡΡ Π΄Π²Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ: Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ΠΏΠΎΡΠΎΠΊΠΎΠ². Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΡΠΎΡΠ΅ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² β ΡΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π±ΠΎΠ»Π΅Π΅. Π’Π°ΠΊ, ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΠΈΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ ΠΊΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π°Π΄Π°Ρ.ΠΠΎΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΡΠ΅ΠΌΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π‘Π²ΠΎΠΈΠΌΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ ΠΎΠ±ΡΠ·Π°Π½ ΠΏΠΎΠ½ΡΡΠΈΡ "ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ". ΠΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, Ρ ΠΎΡΡ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ Π±ΠΎΠ»ΡΡΠ΅. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΠ°ΡΡΡΡ Π΄Π²Π΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΎΠ±Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π΄Π²ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ .ΠΡΠ»ΠΈΡΠΈΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²Π΅Π΄Π΅Π½Ρ ΠΊΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ: ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎΠ²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π° ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² β Π΄Π»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ, Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ΅Π΅ Π² Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΠ±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ² Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π±ΡΠ΄Ρ ΡΠΎΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΏΠΎΡΡΠ°ΠΌ, Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ°Ρ ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°,ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ (Π¦Π). ΠΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»ΡΡΡΡΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠ²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ. Π Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΡΡ Π·Π°Π΄Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ» ΡΠ΅ΡΠ΅Π·ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌ, Π΄ΡΡΠ³Π°Ρ Π΅Π΅ ΡΠ°ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π° ΡΡΠ΅ΡΡΡ β ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎΠ±Π»ΠΎΠΊΠ° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ .ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. Π ΡΠ΅Π»ΠΎΠΌ, ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅ΡΠ±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌΡΡ; Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠ΅ΡΡΡΡΡΠ¦Π; ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ, Ρ:Π΅. Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌΡΡ; Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ; Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ; Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½ΡΠ΅Π½ΠΎ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ.Π ΡΡΠ΅Π΄Π΅ .NET Framework ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π²Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²: ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉΠΈ ΡΠΎΠ½ΠΎΠ²ΡΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΌ, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ½ΠΎΠ²ΡΠΌ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΡΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π² Π΅Π³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ.Π ΡΠ²ΡΠ·ΠΈ Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠ² ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ»Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈΠ² C# ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅.ΠΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ Π½Π΅Π³ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ,Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ.Π ΡΠ·ΡΠΊΠ΅ C# ΠΈ ΡΡΠ΅Π΄Π΅ .NET Framework ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΠ±Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ: Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ C# ΠΌΠΎΠΆΠ½ΠΎΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ ΡΠ΅ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ. ΠΠ»ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ. ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π² C# ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ,ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° C# ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.ΠΠ»Π°ΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ System.Threading. ΠΠΎΡΡΠΎΠΌΡ Π»ΡΠ±Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° C#Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ΄Π°.using System.Threading;ΠΠ»Π°ΡΡ ThreadΠ‘ΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ Thread, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ»Π°ΡΡ Thread ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π΅ΡΠΌΠ΅ΡΠΈΡΠ½ΡΠΌ, Ρ.Π΅. ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ. Π ΠΊΠ»Π°ΡΡΠ΅ Thread ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΡΠ΄ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ»Π΅Π½Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° Thread,Ρ.Π΅. ΠΊΠ»Π°ΡΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ System.Threading. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π°ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Thread:public Thread(ThreadStart Π·Π°ΠΏΡΡΠΊ)Π³Π΄Π΅ Π·Π°ΠΏΡΡΠΊ β ΡΡΠΎ ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ ΡΠ΅Π»ΡΡ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°,a ThreadStart β Π΄Π΅Π»Π΅Π³Π°Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² ΡΡΠ΅Π΄Π΅ .NET Framework, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎΠ½ΠΈΠΆΠ΅.public delegate void ThreadStart()Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠ΅ΡΠΎΠ΄, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡΠ²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΏ void ΠΈ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².ΠΠ½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π½Π°ΡΠ½Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅ΡΠ²ΡΠ·Π²Π°Π½ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ Start(), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ Thread. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ ΡΠΎΡΠΌΡΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Start(). ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ .public void Start()ΠΠ΄Π½Π°ΠΆΠ΄Ρ Π½Π°ΡΠ°Π²ΡΠΈΡΡ, ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅ΡΠ²ΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΡΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ·ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΡΠΎΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Start() Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ Π½Π°ΡΠ°Π»ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ThreadStateException.Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ.// Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.using System;using System.Threading;class MyThread {public int Count;string thrdName;public MyThread(string name) {Count = 0;thrdName = name;}// Π’ΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ.public void Run() {Console.WriteLine(thrdName + " Π½Π°ΡΠ°Ρ.");do {Thread.Sleep(500);Console.WriteLine("Π ΠΏΠΎΡΠΎΠΊΠ΅ " + thrdName + ", Count = " + Count);Count++;} while(Count < 10);Console.WriteLine(thrdName + " Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}class MultiThread {static void Main() {Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠ°Ρ.");// Π‘Π½Π°ΡΠ°Π»Π° ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° MyThread.MyThread mt = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #1");// ΠΠ°Π»Π΅Π΅ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.Thread newThrd = new Thread(mt.Run);// Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°.newThrd.Start();do {Console.Write(".");Thread.Sleep(100);} while (mt.Count != 10);Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. Π ΡΠ°ΠΌΠΎΠΌ Π΅Π΅ Π½Π°ΡΠ°Π»Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ MyThread, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Run() ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ» Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΎΡ 0 Π΄ΠΎ 9. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·ΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Sleep(), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ Thread.ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½,Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ. Π Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄Π° Sleep():public static void Sleep(int ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΏΡΠΎΡΡΠΎΡ)Π³Π΄Π΅ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΏΡΠΎΡΡΠΎΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΏΡΠΎΡΡΠΎΡ ΡΠ°Π²Π½ΠΎΠ½ΡΠ»Ρ, ΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡΠ²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΎΠΆΠΈΠ΄Π°ΡΡΠ΅Π³ΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Main() Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° Thread ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉΠ½ΠΈΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².// Π‘Π½Π°ΡΠ°Π»Π° ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° MyThread.MyThread mt = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #1");// ΠΠ°Π»Π΅Π΅ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.Thread newThrd = new Thread(mt.Run);// Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°.newThrd.Start();ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΊ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° MyThread. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΡΠΈΠΏΠ° Thread, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡΠΌΠ΅ΡΠΎΠ΄ mt.Run(). Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Start().ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ mt.Run() Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Start() Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ Main(),Π³Π΄Π΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΈΠΊΠ» do-while. ΠΠ±Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π¦Π, Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠΈΠΊΠ»Π°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. (ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π·Π°Π΄Π°Ρ.)ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠ°Ρ.ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π½Π°ΡΠ°Ρ.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 0....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 1....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 2....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 3....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 4....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 5....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 6....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 7....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 8....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 9ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠ°ΡΠ°ΡΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ» ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΌ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΠ²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡ Π²ΡΠ΅ Π΅Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ°Π» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠ½ΡΡΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ ΡΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.Π ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΠ° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠ·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΌ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Count ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ do-while Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Main(), ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡΡΠ°Π²Π½ΡΠΌ 10, ΡΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠΉ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Sleep().ΠΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π°Π»Π΅ΠΊ ΠΎΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡΠ΄ΡΡΠ³ΠΎΠ³ΠΎ.ΠΡΠΎΡΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΠ Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½Π°, Π½ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ, Π²Π½Π΅ΡΡ ΡΡΠ΄ ΠΏΡΠΎΡΡΡΡ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π»ΠΎΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° Thread Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° MyThread.Π Π²ΠΎ-Π²ΡΠΎΡΡΡ , Π² ΠΊΠ»Π°ΡΡΠ΅ MyThread ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡΠ΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ Thread ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Name.public string Name { get; set; }Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Name Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΆΠΈΡΡ ΠΊΠ°ΠΊ Π΄Π»ΡΠ·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠΎΠΊΠ°.ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π²Π΅ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Π½Π΅ΡΠ΅Π½Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅Π²ΡΡΠ΅ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ.// ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°.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 + " Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}class MultiThreadImproved {static void Main() {Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠ°Ρ.");// Π‘Π½Π°ΡΠ°Π»Π° ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° MyThread.MyThread mt = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #1");do {Console.Write(".");Thread.Sleep(100);} while (mt.Count != 10);Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}ΠΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Thrd ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° MyThread.Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ.ΠΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΎΠ΄ΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°.// Π‘ΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.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 + " Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}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.Count < 10 ||mt2.Count < 10 ||mt3.Count < 10);Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠ°Ρ..ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π½Π°ΡΠ°Ρ.ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π½Π°ΡΠ°Ρ.ΠΠΎΡΠΎΠΌΠΎΠΊ #3 Π½Π°ΡΠ°Ρ.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 0Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 0Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 0.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 1Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 1Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 1.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 2Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 2Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 2.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 3Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 3Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 3.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 4Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 4Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 4.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 5Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 5Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 5.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 6Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 6Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 6.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 7Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 7Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 7.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 8Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 8Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 8.....Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 9ΠΠΎΡΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 9ΠΠΎΡΠΎΠΊ #2 Π·Π°Π²Π΅ΡΡΠ΅Π½.Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 9ΠΠΎΡΠΎΠΊ #3 Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π½Π°ΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π¦Π. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², Π²Π»ΠΈΡΡΡΠΈΡ Π½Π°Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π»ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ 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Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 0Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 0Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 1Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 1Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 1Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 2Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 2Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 2Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 3Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 3Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 3Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 4Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 4Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 4Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 5Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 5Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 5Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 6Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 6Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 6Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 7Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 7Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 7Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 8Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 8Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 8Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 9ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 9ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π·Π°Π²Π΅ΡΡΠ΅Π½.Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #3, Count = 9ΠΠΎΡΠΎΠΌΠΎΠΊ #3 Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.ΠΠΎΡΠΎΠΌΠΎΠΊ #3 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½.ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎΡΡΠ΄Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Join().ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠΎΠΊΡΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΡΡΠ΅Π΄Π΅ .NET Framework Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΠΎΠΊΡ,ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π»ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ»ΡΠΆΠΈΠ²ΡΠ΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ, Π½Π΅ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ,ΡΠΎ ΠΊ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΠ΄ΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠΎ ΡΡΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π±ΡΠ» Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΡΡΡΠ°Π½Π΅Π½, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡΠ°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΏΠΎΡΠΎΠΊΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈΡΠΎΡΠΌΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Start(), ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Thread, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ»ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π²ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ.ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΎΡΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Start().public void Start(object ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ)ΠΠ±ΡΠ΅ΠΊΡ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡΠΌΠ΅ΡΠΎΠ΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΌΡ ΡΠΎΠ»Ρ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΠΎΠΊΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Start().ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° Start() ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Thread:public Thread(ParameterizedThreadStart Π·Π°ΠΏΡΡΠΊ)Π³Π΄Π΅ Π·Π°ΠΏΡΡΠΊ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ Ρ ΡΠ΅Π»ΡΡ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π·Π°ΠΏΡΡΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏParameterizedThreadStart, Π° Π½Π΅ ThreadStart, ΠΊΠ°ΠΊ Π² ΡΠΎΡΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠ΅ΠΉΡΡΠ² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ParameterizedThreadStart ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠΌ, ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.public delegate void ParameterizedThreadStart(object obj)ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎΡ Π΄Π΅Π»Π΅Π³Π°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° object. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Thread Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ»ΡΠΆΠ°ΡΠ΅Π³ΠΎΠ² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° object.Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΏΠΎΡΠΎΠΊΡ.// ΠΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°.using System;using System.Threading;class MyThread {public int Count;public Thread Thrd;// ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ°// MyThread ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int.public MyThread(string name, int num) {Count = 0;// ΠΡΠ·Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° ParameterizedThreadStart// ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π΄ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°.Thrd = new Thread(this.Run);Thrd.Name = name;// ΠΠ΄Π΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ num ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Start()// Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.Thrd.Start(num);}// ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Run()// ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° object.void Run(object num) {Console.WriteLine(Thrd.Name + " Π½Π°ΡΠ°Ρ ΡΠΎ ΡΡΠ΅ΡΠ° " + num);do {Thread.Sleep(500);Console.WriteLine("Π ΠΏΠΎΡΠΎΠΊΠ΅ " + Thrd.Name + ", Count = " + Count);Count++;} while(Count < (int) num);Console.WriteLine(Thrd.Name + " Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}class PassArgDemo {static void Main() {// ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ// ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΡΠΈΠΌ Π΄Π²ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΠΈΠΏΠ° MyThread.MyThread mt = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #1", 5);MyThread mt2 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #2", 3);do {Thread.Sleep(100);} while (mt.Thrd.IsAlive'| mt2.Thrd.IsAlive);Console.WriteLine("ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ ΠΎΡΡ Ρ Π²Π°Ρ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠΌ.ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π½Π°ΡΠ°Ρ ΡΠΎ ΡΡΠ΅ΡΠ° 5ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π½Π°ΡΠ°Ρ ΡΠΎ ΡΡΠ΅ΡΠ° 3Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 0Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 0Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 1Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 1Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #2, Count = 2ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π·Π°Π²Π΅ΡΡΠ΅Π½.Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 2Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 3Π ΠΏΠΎΡΠΎΠΊΠ΅ ΠΠΎΡΠΎΠΌΠΎΠΊ #1, Count = 4ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ ΠΏΡΡΡ ΡΠ°Π·,Π° Π²ΡΠΎΡΠΎΠΉ β ΡΡΠΈ ΡΠ°Π·Π°. Π§ΠΈΡΠ»ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° MyThreadΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Run(), ΡΠ»ΡΠΆΠ°ΡΠ΅ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ParameterizedThreadStart ΠΌΠ΅ΡΠΎΠ΄Π° Start().Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ IsBackgroundΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π² ΡΡΠ΅Π΄Π΅ .NET Framework ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π²Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈΠΏΠΎΡΠΎΠΊΠΎΠ²: ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΈ ΡΠΎΠ½ΠΎΠ²ΡΠΉ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡΠ² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠΊΠΎΠ½ΡΠΈΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ,ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΌ. ΠΠΎ Π΅Π³ΠΎΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ½ΠΎΠ²ΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ IsBackground, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅Thread, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.public bool IsBackground { get; set; }ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΡΠΎΠ½ΠΎΠ²ΡΠΌ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅true ΡΠ²ΠΎΠΉΡΡΠ²Ρ IsBackground. Π Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΌ.ΠΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ°ΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎΡΠ°ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π¦Π. ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π¦Π ΡΠ΅ΠΆΠ΅, ΡΠ΅ΠΌ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΠ¦Π, ΡΠ΅ΠΌ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΌΡ. ΠΠ°ΠΊ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ, Π²ΡΠ΅ΠΌΡ Π¦Π, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌΠΈ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°, Π½Π° ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΡΠΎΠΊΠ° ΠΊ Π¦ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΡΡ. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΎΠ½ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ,Π° Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ. Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π¦Π ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉΠΏΠΎΡΠΎΠΊ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΡ Π¦Π,Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ°.ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°Priority, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ ΡΠ»Π΅Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Thread. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΎΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°:public ThreadPriority Priority{ get; set; }Π³Π΄Π΅ ThreadPriority ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅Π½ΠΈΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ².ThreadPriority.HighestThreadPriority.AboveNormalThreadPriority.NormalThreadPriority.BelowNormalThreadPriority.LowestΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ThreadPriority.Normal.ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ°: ΠΎΠ΄ΠΈΠ½ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. ΠΠ±Π° ΠΏΠΎΡΠΎΠΊΠ° ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° MyThread.Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Run() ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ. Π¦ΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΡΡΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ 1000000000 ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ stop ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ stop ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, Π³Π΄Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ Π΄ΠΎ 1000000000, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ stop. Π ΡΠΈΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ²ΠΎΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΡΠΈΠΊΠ»Π° ΡΡΡΠΎΠΊΠ° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ currentName ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π°Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠ² Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π·Π°Π΄Π°Ρ. ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ, ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉcurrentName. ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΡΠΎΠΊΠ° ΠΊ Π¦Π. ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΊΠ»Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ .// ΠΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ².using System;using System.Threading;class MyThread {public int Count;public Thread Thrd;static bool stop = false;static string currentName;/ Π‘ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎΠ΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ². /public MyThread(string name) {Count = 0;Thrd = new Thread(this.Run);Thrd.Name = name;currentName = name;}// ΠΠ°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.void Run() {Console.WriteLine("ΠΠΎΡΠΎΠΊ " + Thrd.Name + " Π½Π°ΡΠ°Ρ.");do {Count++;if(currentName != Thrd.Name) {currentName = Thrd.Name;Console.WriteLine("Π ΠΏΠΎΡΠΎΠΊΠ΅ " + currentName);}} while(stop == false && Count < 1000000000);stop = true;Console.WriteLine("ΠΠΎΡΠΎΠΊ " + Thrd.Name + " Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}class PriorityDemo {static void Main() {MyThread mt1 = new MyThread("Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ");MyThread mt2 = new MyThread("Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ");// Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ².mt1.Thrd.Priority = ThreadPriority.AboveNormal;mt2.Thrd.Priority = ThreadPriority.BelowNormal;// ΠΠ°ΡΠ°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ.mt1.Thrd.Start();mt2.Thrd.Start();mt1.Thrd.Join();mt2.Thrd.Join();Console.WriteLine();Console.WriteLine("ΠΠΎΡΠΎΠΊ " + mt1.Thrd.Name +" Π΄ΠΎΡΡΠΈΡΠ°Π» Π΄ΠΎ " + mt1.Count);Console.WriteLine("ΠΠΎΡΠΎΠΊ " + mt2.Thrd.Name +" Π΄ΠΎΡΡΠΈΡΠ°Π» Π΄ΠΎ " + mt2.Count);}}ΠΠΎΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΠΎΡΠΎΠΊ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π½Π°ΡΠ°Ρ.Π ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠΠΎΡΠΎΠΊ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π½Π°ΡΠ°Ρ.Π ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌΠΠΎΡΠΎΠΊ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠΎΡΠΎΠΊ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠΎΡΠΎΠΊ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π΄ΠΎΡΡΠΈΡΠ°Π» Π΄ΠΎ 1000000000ΠΠΎΡΠΎΠΊ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π΄ΠΎΡΡΠΈΡΠ°Π» Π΄ΠΎ 23996334Π‘ΡΠ΄Ρ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΠΊΠΎΠ»ΠΎ 98% Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ,ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π¦Π ΠΈ ΡΠΈΡΠ»Π° Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°Ρ,ΡΠ΅ΡΠ°Π΅ΠΌΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Windows.ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅Π΄Π°Ρ , ΠΏΠΎΡΡΠΎΠΌΡΠ½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.Π’Π°ΠΊ, Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ. Π Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ Π΅ΡΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΠΎΡΠ΅ΡΡ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. Π‘Π°ΠΌΠΎΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ»ΡΠΆΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΡΠ΅Π΄ΠΈ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌΠΏΠΎΡΠΎΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ°ΠΉΠ», Π²ΡΠΎΡΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈ Π² ΡΠΎΠΌΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠΎΠ²Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.Π ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. ΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ. ΠΠΎΠ³Π΄Π° ΠΆΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΠ΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΡΡΠΎΠ΅Π½ΠΎ Π² ΡΠ·ΡΠΊ Π‘#. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° lock.ΠΠ½Π° Π±ΡΠ»Π° ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π² C# Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²ΠΎΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° Π‘# ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎ.ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΎΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ:lock(lockObj) {// ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ}Π³Π΄Π΅ lockObj ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΡΠΎ ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ lockΠ³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°, Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠΎΡΠΎΠΊΠ΅, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅ΠΌ ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ. Π Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ½ΡΡΠ°. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ½ΠΈΠΌΠ°Π΅ΡΡΡΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°.ΠΠ»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉΡΠ΅ΡΡΡΡ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΠΌ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. Π‘Π»Π΅Π΄ΡΠ΅Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ,ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. Π ΠΏΡΠΎΡΠ»ΠΎΠΌ Π΄Π»ΡΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ lock(this). ΠΠΎ ΠΎΠ½Π° ΠΏΡΠΈΠ³ΠΎΠ΄Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ this ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π·Π°ΠΊΡΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π ΡΠ²ΡΠ·ΠΈ ΡΠ²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ lock(this), ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ Π½Π΅Π΅Π»ΡΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°ΠΊΡΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠ΅ΠΌ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΏΡΠΈΠ½ΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅. ΠΠΎ Π² ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΌΠΊΠΎΠ΄Π΅ C# ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ lock(this).Π ΠΎΠ΄Π½ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ, Π° Π² Π΄ΡΡΠ³ΠΈΡ β ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΠ²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΎΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ SumIt(), ΡΡΠΌΠΌΠΈΡΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎΠΌΠ°ΡΡΠΈΠ²Π°.// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ.using System;using System.Threading;class SumArray {int sum;object lockOn = new object(); // Π·Π°ΠΊΡΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ// Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈpublic int SumIt(int[] nums) {lock(lockOn) { // Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄sum = 0; // ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡfor(int i=0; i < nums.Length; i++) {sum += nums[i];Console.WriteLine("Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° " +Thread.CurrentThread.Name + " ΡΠ°Π²Π½Π° " + sum);Thread.Sleep(10); // ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ}return sum;}}}class MyThread {public Thread Thrd;int[] a;int answer;// Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° SumArray Π΄Π»Ρ Π²ΡΠ΅Ρ // ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° MyThread.static SumArray sa = new SumArray();// Π‘ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ,public MyThread(string name, int[] nums) {a = nums;Thrd = new Thread(this.Run);Thrd.Name = name;Thrd.Start(); // Π½Π°ΡΠ°ΡΡ ΠΏΠΎΡΠΎΠΊ}// ΠΠ°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.void Run() {Console.WriteLine(Thrd.Name + " Π½Π°ΡΠ°Ρ.");answer = sa.SumIt(a);Console.WriteLine("Π‘ΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° " + Thrd.Name + " ΡΠ°Π²Π½Π° " + answer);Console.WriteLine(Thrd.Name + " Π·Π°Π²Π΅ΡΡΠ΅Π½.");}}class Sync {static void Main() {int[] a = {1, 2, 3, 4, 5);MyThread mt1 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #1", a);MyThread mt2 = new MyThread("ΠΠΎΡΠΎΠΌΠΎΠΊ #2", a);mt1.Thrd.Join();mt2.Thrd.Join();}}ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ ΠΎΡΡ Ρ Π²Π°Ρ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠΌ.ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π½Π°ΡΠ°Ρ.Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 1ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π½Π°ΡΠ°Ρ.Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 3Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 6Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 10Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 15Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 1Π‘ΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 15ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 3Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 6Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 10Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 15Π‘ΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 15ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π² ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΌΠΌΠ°, ΡΠ°Π²Π½Π°Ρ 15.Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. Π‘Π½Π°ΡΠ°Π»Π° Π² Π½Π΅ΠΉ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°.ΠΠ΅ΡΠ²ΡΠΌ ΠΈΠ· Π½ΠΈΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ SumArray, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ SumIt(),ΡΡΠΌΠΌΠΈΡΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΎΡΡΠΌ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ MyThread,Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ sa ΡΠΈΠΏΠ° SumArray. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° SumArray ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠΈΠΏΠ° MyThread. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠΌΠΌΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ»Π΅ sum ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° SumArray.ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ SumIt() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π² Π΄Π²ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΡΠΎ ΠΎΠ±Π° ΠΏΠΎΡΠΎΠΊΠ°ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠΎΠ»Ρ sum, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² Π½Π΅ΠΌ ΡΠ΅ΠΊΡΡΡΡ ΡΡΠΌΠΌΡ. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ, ΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ SumIt() Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² ΡΡΠ΅ΡΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅, Sync, ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΌΠΌΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.ΠΠΏΠ΅ΡΠ°ΡΠΎΡ lock Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ SumIt() ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΡΠ°Π·Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ . ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ lock ΠΎΠ±ΡΠ΅ΠΊΡ lockOn ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ. ΠΡΠΎ Π·Π°ΠΊΡΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅ΡΠΎΠ΄ Sleep() Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡΠ΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ, Ρ ΠΎΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎΠ΄ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ SumIt() Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΡΠΎΡΠΎΠΉΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠΉΡΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄ SumIt() Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΈΠ· Π½Π΅Π³ΠΎ Π½Π΅Π²ΡΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΡΠ½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅Π»ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° SumIt(). Π ΠΈΡΠΎΠ³Π΅ ΠΌΠ΅ΡΠΎΠ΄SumIt() ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ Π±ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ»Π΅ sum, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅,Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ SumIt(). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ SumIt() Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡΠ½Π΅Π²Π΅ΡΠ½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ sum ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ . Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅ ΡΠ½ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Ρ ΠΌΠ΅ΡΠΎΠ΄Π° SumIt().ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π½Π°ΡΠ°Ρ.Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 1ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π½Π°ΡΠ°Ρ.Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 1Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 3Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 5Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 8Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 11Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 15Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 19Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 24Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 29Π‘ΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #1 ΡΠ°Π²Π½Π° 29ΠΠΎΡΠΎΠΌΠΎΠΊ #1 Π·Π°Π²Π΅ΡΡΠ΅Π½.Π’Π΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΠΎΡΠΎΠΌΠΎΠΊ #2 ΡΠ°Π²Π½Π° 29ΠΠΎΡΠΎΠΌΠΎΠΊ #2 Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π² ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ SumIt() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΠΊ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ΄Π΅ sum.ΠΠΈΠΆΠ΅ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Π½Ρ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΠΈΡΠΎΠ³ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.β’ ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.β’ ΠΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ, ΠΏΡΡΠ°ΡΡΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΆΠ΄Π°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π² ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.β’ ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ.ΠΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π²ΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎΠ² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌΠ΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°,ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΊΠ΅ΠΌ-ΡΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΈ ΡΠ°ΠΌ Π½Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. ΠΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡΠ²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΆΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ lock Π½Π΅Π»ΡΠ·Ρ Π²Π²Π΅ΡΡΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠΆΠΎΠ³ΠΎΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠ³Π΄Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°? Π ΡΡΠ°ΡΡΡΡ, ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ: Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π΄ΠΎ