Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 80

Автор ДТонсон Π₯Π°Ρ€Ρ‚

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΡ PulseEvent Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ ΠΏΡ€ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ ΠΌΠΎΠ³ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиС, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠΌ.

β€’ ΠŸΠΎΡ‚ΠΎΠΊ потрСбитСля тСстируСт ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ условия ΠΏΡ€ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ΅. Если условиС, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠΌ, выполняСтся, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ оТидания Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ нСобходимости.

β€’ Π•сли ΠΆΠ΅ условиС, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠΌ, Π½Π΅ выполняСтся, ΠΏΠΎΡ‚ΠΎΠΊ потрСбитСля Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ Π΄ΠΎ выполнСния оТидания события. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ смоТСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ событиС.

β€’ Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» оТидания события Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΠΎΡ‚ΠΎΠΊ производитСля ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ PulseEvent Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ освобоТдСниСм ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ° (шаг 1) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ оТидания события (шаг 2). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Π΅Π· использования ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° оТидания сигнал ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ являСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ проявлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΡΠΎΡΡ‚ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. К ΠΏΠΎΡ‚Π΅Ρ€Π΅ сигналов ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ асинхронныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, описанныС Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» оТидания являСтся настраиваСмым ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. (Π‘ коммСнтариями ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π’.)

β€’ ΠŸΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ оТидания события ΠΏΠΎΡ‚ΠΎΠΊ потрСбитСля всСгда ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ провСряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ условия, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠΌ. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» оТидания ΠΌΠΎΠΆΠ΅Ρ‚ просто ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Ρ‚ΡŒΡΡ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π·Π° это врСмя состояниС Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ. НапримСр, ΠΏΠΎΡ‚ΠΎΠΊ производитСля ΠΌΠΎΠ³ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° сообщСния, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ° потрСбитСля, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ состояниС, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚, Ρ‡Ρ‚ΠΎ сообщСния ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ оТидания. НаконСц, повторная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π»ΠΎΠΆΠ½ΠΎΠ³ΠΎ пробуТдСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ установит событиС Π² сигнальноС состояниС ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ ΠΊ Π½Π΅ΠΌΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ PulseEvent Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ блокирования ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ°. 

β€’ ПослС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΡ‚ΠΎΠΊ потрСбитСля всСгда сохраняСт Π·Π° собой ΠΏΡ€Π°Π²ΠΎ владСния ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠΌ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Разновидности ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сбрасываСмоС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ событиС ΠΈ вызываСтся функция PulseEvent, Π° Π½Π΅ функция SetEvent. ЯвляСтся Π»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π»ΠΈ ΠΈΠ½ΠΎΠΉ способ использования события? ΠžΡ‚Π²Π΅Ρ‚ Π½Π° ΠΎΠ±Π° эти вопросы являСтся ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Π’Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ ΠΊ Ρ‚Π°Π±Π». 8.1, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сбрасываСмыС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ события Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ освобоТдСниСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ Π² случаС нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСсколько сообщСний ΠΈ сущСствуСт нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² потрСбитСля, ΠΈ всС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½Ρ‹ ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… измСнСниях. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Ссли ΠΏΠΎΡ‚ΠΎΠΊ производитСля создаСт всСго лишь ΠΎΠ΄Π½ΠΎ сообщСниС ΠΈ имССтся нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² потрСбитСля, Ρ‚ΠΎ событиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ автоматичСски сбрасываСмым, Π° ΠΏΠΎΡ‚ΠΎΠΊ производитСля Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SetEvent, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ освобоТдСниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ этом случаС ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Π½Π΅ с сигнальной Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ CV, Π° с ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. ΠŸΡ€ΠΈ этом ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ остаСтся сущСствСнным, Ρ‡Ρ‚ΠΎΠ±Ρ‹ освобоТдСнный ΠΏΠΎΡ‚ΠΎΠΊ потрСбитСля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Π° владСния ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠΌ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для указания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ доступныС сообщСния ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ условиС, опрСдСляСмоС ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ условия, ΡƒΠΆΠ΅ Π½Π΅ выполняСтся).

Из Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π». 8.1, для ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий Π²Π°ΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅. Π§Ρ‚ΠΎ касаСтся Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, Ρ‚ΠΎ Π² силу конСчности ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° оТидания эффСкт ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ "автоматичСски сбрасываСмоС событиС/PulseEvent" Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ "автоматичСски сбрасываСмоС событиС/SetEvent" (сигнальная модСль CV), ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° оТидания ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ сниТСнию характСристик рСактивности.

ИспользованиС ΠΆΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ "Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ сбрасываСмоС событиС/PulseEvent" ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ появлСнию Π»ΠΎΠΆΠ½Ρ‹Ρ… сигналов (ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΡ€Π°Π²Π΄Π°, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ событиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° Π΄ΠΎ сброса события ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡΡ‚ΡΠ·Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

Подводя ΠΈΡ‚ΠΎΠ³ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ комбинация "автоматичСски сбрасываСмоС событиС/SetEvent" прСдставляСт собой ΡΠΈΠ³Π½Π°Π»ΡŒΠ½ΡƒΡŽ модСль CV, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ освобоТдаСтся СдинствСнный ΠΈΠ· ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° комбинация "Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ сбрасываСмоС событиС/PulseEvent" β€” ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ модСль CV, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ всС ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. Для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Pthreads ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ различия, Π½ΠΎ использованиС ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² оТидания событий для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π΅ трСбуСтся, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² Windows этот Ρ„Π°ΠΊΡ‚ΠΎΡ€ являСтся вСсьма сущСствСнным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ освобоТдСниС ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ° ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ события Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SignalObjectAndWait мСняСт эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ условия

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ условия:

State.StateVar.Count >= K;

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΠΎΡ‚ΠΎΠΊ потрСбитСля Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Π½Π΅ станСт достаточно большим, ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ производитСля ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ. ΠžΡ‚ΡΡŽΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, становится понятным, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ слоТныС сСмафоры; вспомнитС, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ сСмафоры Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ³ΠΎ выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ оТидания. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΆΠ΅ случаС ΠΏΠΎΡ‚ΠΎΠΊ потрСбитСля ΠΌΠΎΠΆΠ΅Ρ‚ просто ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Π½Π° К Π΅Π΄ΠΈΠ½ΠΈΡ† послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ модСль CV, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ производитСля ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика ΠΈ Ρ‚Π΅ΠΌ самым Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ нСскольким, Π½ΠΎ Π½Π΅ всСм ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ потрСбитСля.

Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€Ρ‹ ΠΈ модСль ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях умСстнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ события, Π° сСмафоры, прСимущСство ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ. НапримСр, Ссли Π±Ρ‹ Π±Ρ‹Π»ΠΎ извСстно, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² потрСбитСля ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ сообщСниС, Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ производитСля ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ReleaseSemaphore, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство сгСнСрированных сообщСний. Однако Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΏΠΎΡ‚ΠΎΠΊΡƒ производитСля Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ извСстно ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ потрСбитСля измСнят структуру ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ состояния, ΠΈ поэтому модСль ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условий ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ ΠΊΡ€ΡƒΠ³Π° Π·Π°Π΄Π°Ρ‡.

МодСль CV ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ достаточно ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ возмоТностями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСмафоров. Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π² основС этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π»Π΅ΠΆΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°, эквивалСнтного ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ: "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика являСтся Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ", ΠΈ созданиС структуры состояния, содСрТащСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика ΠΈ Π΅Π³ΠΎ максимально допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ 10.11 прСдставлСно Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ функциями оТидания ΠΏΡƒΡ‚Π΅ΠΌ измСнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ счСтчика Π½Π° нСсколько Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСмафоров для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Pthreads Π½Π΅ прСдусмотрСно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ условий ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ достаточно ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности. 

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SignalObjectAndWait

Π¦ΠΈΠΊΠ», выполняСмый ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ потрСбитСля Π² ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°, ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ CV, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Π΅ΠΌ выполняСтся ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ измСнСния состояния, Π° Π·Π°Ρ‚Π΅ΠΌ провСряСтся, являСтся Π»ΠΈ состояниС ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ трСбуСтся. ПослСднСС условиС ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ, Ссли событиС оказываСтся слишком ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌ, указывая, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сам Ρ„Π°ΠΊΡ‚ измСнСния состояния, Π° Π½Π΅ Π½Π° характСристики Ρ‚Π°ΠΊΠΎΠ³ΠΎ измСнСния. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ сообщСний. Упомянутый Ρ†ΠΈΠΊΠ» Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» выполнСния Π΄Π²ΡƒΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ оТидания ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ освобоТдСния ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

while (!cvp(&State)) {

 ReleaseMutex(State.Guard);

 WaitForSingleObject(State.CvpSet, TimeOut);

 WaitForSingleObject(State.Guard, INFINITE);

}

ИспользованиС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° оТидания (time-out) ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ оТидания (ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ события) трСбуСтся здСсь для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ сигналов ΠΈΠ»ΠΈ возникновСния Π΄Ρ€ΡƒΠ³ΠΈΡ… вСроятных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 9x, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows NT 3.5 (Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ вСрсия Windows), Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° сохранит свою Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ CS.