рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрд╛рд░реА рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 11 рдмреАрдЯрд╛ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ C # 5 рдХреА рдПрдХ рдирдИ рдФрд░ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕
/ рд╡реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧред рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦреЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣реИрдмреЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд▓реЗрдЦреЛрдВ рдХреА рдпрд╣
рд╢реНрд░реГрдВрдЦрд▓рд╛ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдкрдиреЗ рд▓рд┐рдП, рдореИрдВ рдЕрднреА рднреА рдирдП рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рд╕рд╛рд░ рдХреЛ рддрдм рддрдХ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЦреБрдж рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛ рдирд╣реАрдВред рдпрд╣ рд▓реЗрдЦ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдХрд░рдг рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдмрддрд╛ рд░рд╣рд╛ рд╣реИред рддреЛ рдЪрд▓рд┐рдП рдЬрд╛рдиреЗ ...
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рд╕реА # рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рдХреЗ рд▓реЗрдЦрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Linq рдиреЗ рдХреЛрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдФрд░ sql рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЕрдм рдмрд╛рд░реА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлреНрд░реЗрдорд╡рд░реНрдХ рдиреЗ рдорд▓реНрдЯреАрдереНрд░реЗрдб рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдЬрдорд╛ рдХрд░ рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдбрд╡реЙрдХрд░ рдХреЗ рджреГрд╢реНрдп рдШрдЯрдХ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рд╕реЗ рд▓реЗрдХрд░, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдХреЛрдб рдХреА рдПрдХ рд╕рднреНрдп рдорд╛рддреНрд░рд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдХрд╛рд░реНрдп рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдереНрд░реЗрдб рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕реАрдзреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдирдИ async / рдкреНрд░рддреАрдХреНрд╖рд┐рдд рднрд╛рд╖рд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рди рдХреЗрд╡рд▓ рдкреГрд╖реНрдарднреВрдорд┐ рдереНрд░реЗрдб рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рднреА рдХрд░рддрд╛ рд╣реИ - рдХреЛрдб рд▓рдЧрднрдЧ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ (рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд╕рд╣рд┐рдд) рджрд┐рдЦрддрд╛ рд╣реИред
рдорд┐рд▓рдирд╛: async / рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛
рдЖрдорддреМрд░ рдкрд░, рдХреАрд╡рд░реНрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рд░ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрддрд╛рддреЗ рд╣реИрдВ, рдХреЛрдИ рднреА рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд╡рд╣реА рд╣реИрдВ рдЬреЛ рд╡реЗ рд╣реИрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рддрд░рд╣, рдирдП рдирд┐рд░реНрдорд╛рдг рдХреЛ рдХреЛрдб рд╕реЗ рд╕реАрдзреЗ рд╕рдордЭрдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИ:
рдФрд░ рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рддреЛ рдХрдИ рд╕рд╡рд╛рд▓ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЗ рд╕рд╛рде рдЙрдарддреЗ рд╣реИрдВред рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд, WebClient рд╡рд░реНрдЧ рдХреА рдирдИ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде -
DownloadStringTaskAsync - рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рд░реНрдп <string> рджреЗрддрд╛ рд╣реИ рдФрд░ рдирдП рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдХрд╣рд╛рдиреА рдореЗрдВ рд░рд┐рдЯрд░реНрди рдЯрд╛рдЗрдк рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБ рд╣реИ - рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗрд╡рд▓ рдЯрд╛рд╕реНрдХ рдФрд░ рдЯрд╛рд╕реНрдХ <T> рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИред
UPD: рдЬреИрд╕рд╛ рдХрд┐
jack128 рдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╣реА рдмрддрд╛рдпрд╛
рд╣реИ , рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЧреЗрдЯрд╡рд╛рдЯрд░ () рд╡рд┐рдзрд┐ рд╣реИ, рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рддреЛ,
DownloadStringTaskAsync рд╡рд┐рдзрд┐ рдПрдХ рдХрд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рддреБрд░рдВрдд рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд url рдХрд╛ рдПрдХ рдкреГрд╖реНрда рдкреГрд╖реНрдарднреВрдорд┐ рдереНрд░реЗрдб рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЯрд╛рд╕реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
private void OnButtonClick() { Task<string> task = new WebClient().DownloadStringTaskAsync("http://microsoft.com/"); task.Wait();
рдпрд╣ рдХреЛрдб, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░рд╣рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ...
рд╣рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп (рдЯрд╛рд╕реНрдХ <рдЯреА>) рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓ "рдереНрд░реЗрдб" рд░рд╣рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдереНрд░реЗрдб рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рджреГрд╢реНрдп рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ - рд╡рд╣ рди рдХреЗрд╡рд▓ рдЯрд╛рд╕реНрдХ <рдЯреА> рд╕реЗ рдЯреА рддрдХ рдлреИрд▓рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдмрд╛рдХреА рдХреА рд╡рд┐рдзрд┐ рдХреЛ "рдирд┐рд░рдВрддрд░рддрд╛" рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдзрд╛рдЧреЗ рдореЗрдВред рдЗрд╕реА рд╕рдордп, OnButtonClick () рдлрд╝рдВрдХреНрд╢рди рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ред
рдЬреИрд╕реЗ рд╣реА рдкреГрд╖реНрдарднреВрдорд┐ рдзрд╛рдЧрд╛ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рдПрдХ "рдирд┐рд░рдВрддрд░рддрд╛"
рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдПрд╕рд┐рдВрдХреНрд╕ рдХреАрд╡рд░реНрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рди рдЬрд╛рдПрдВ - рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред
рдпрд╣ рдПрдХреНрд╢рди рдореЗрдВ рдХреИрд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрдИ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ:
private async void StartButtonClick(object sender, RoutedEventArgs e) {
рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЪреВрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рд░рд▓ рдФрд░ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЗ рдХрд░реАрдм рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреА рдРрд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗред рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдзрд╛рдЧреЗ рдореЗрдВ рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдИ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд╣реАрдВ рдерд╛):
private async void StartButtonClick(object sender, RoutedEventArgs e) { try { TextBox.Text = await new WebClient().DownloadStringTaskAsync("http://not-habrahabr.ru/"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рдВрджреБ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЪреВрдВрдХрд┐ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рдмрд╛рдж рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрдм рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдЕрдЬреНрдЮрд╛рдд рд╣реИ, рдРрд╕реЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ:
рдЯрд╛рд╕реНрдХ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдереНрд░реЗрдб рдХреЗ рд╕рд╛рде рдмрдирд╛рддреЗ рд╣реА рдХрдВрдЯреНрд░реЛрд▓ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж StartButtonClick рдлрдВрдХреНрд╢рди рд╕реЗ рдПрдХреНрдЬрд┐рдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ ... рдФрд░ рдмрд╛рдж рдореЗрдВ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдереНрд░реЗрдб рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдбреЛрдореЗрди рдиреЗрдо рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
рдЖрдЧрд╛рдореА .Net 4.5 рдореЗрдВ, рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдВрдЧреА - рдЕрд░реНрдерд╛рдд рдЯрд╛рд╕реНрдХ рдФрд░ рдЯрд╛рд╕реНрдХ <T> рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдХрд╛рд░реНрдп рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдФрд░ рдирдП рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рд╕рд░рд▓рддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП, рдирдИ рднрд╛рд╖рд╛ рдХреА рд╕реНрдкрд╖реНрдЯ рд╕рдордЭ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдЙрдирдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ рдЧреБрдВрдЬрд╛рдЗрд╢ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, async рдХреАрд╡рд░реНрдб рдкреГрд╖реНрдарднреВрдорд┐ рдереНрд░реЗрдб рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдиреЛрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рд╕реНрдХ рдФрд░ рдЯрд╛рд╕реНрдХ <T> рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИ рдХрд┐ рдмрд╛рдХреА рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж рдЯрд╛рд╕реНрдХ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╡реЗрдЯ рдХреЛ рдЕрдВрдЬрд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВред
рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп, Microsoft рди рдХреЗрд╡рд▓ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдкреИрдЯрд░реНрди, рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдмрд╛рдзрд╛ рдбрд╛рд▓рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИрдВред
рдпрджрд┐ рдХреЛрдИ рдЕрд╕реНрдкрд╖реНрдЯ рд╕реНрдерд╛рди рдмрдЪрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред