CLRium # 6: рд╕рдорд░реВрдкрддрд╛ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рджред рджреЛ рджрд┐рди: рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдПрд╕рд┐рдВрдХреНрд╕ / рд╡реЗрдЯ рддрдХ




рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛, рд╕реЗрдорд┐рдирд╛рд░ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рдФрд░ рдПрдХ рдирдпрд╛ рд░реВрдк рд▓рд┐рдпрд╛: рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХрд╛ рд╕реЗрдорд┐рдирд╛рд░ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдкрд╛рдВрдЪрд╡рд╛рдВ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдерд╛ рдФрд░ 10 рдШрдВрдЯреЛрдВ рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рдкрддрд╛ рдЪрд▓рд╛ рдЬреЛ рд╕рдВрднрд╡ рд╣реИ, рдХреЛрд╖реНрдардХ рдХреЗ рдкреАрдЫреЗ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рдЬреА рд╕рд╡рд╛рд▓ рдЫреЛрдбрд╝рдХрд░ред рдФрд░ рдЗрд╕рдХреА рдкрд░рд┐рдгрддрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдереА (рдПрдХ рдкреНрд░рд╢реНрди рдЬреЛ рд╕рднреА рдХреЛ рд░реБрдЪрд┐рдХрд░ рд▓рдЧреЗ - "рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ ??")


рджреВрд╕рд░рд╛ рдкреНрд░рд╢реНрди, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИ, рдмрд╣реБ-рд╕реВрддреНрд░реАрдп рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдпреЛрдЬрдирд╛ рдФрд░ рд╕рдорд░реНрдерди рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИред рдпреЗ рдкреНрд░рд╢реНрди рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИрдВ, рднрдпрд╛рд╡рд╣ рд╣реИрдВ, рдФрд░ рдЕрдХреНрд╕рд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХрд╛рд░рдХ рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕рд╛рдзрд╛рд░рдг рдбреЗрд╡рд▓рдкрд░ рд╕рд░рд▓рддрдо рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдирд┐рд░реНрдорд╛рдгреЛрдВ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрд╕рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реИрдВ :)


рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рд╕реЗ рд╕рд░рд▓ рд╕рддреНрдп рдХреЛ рд╕рдордЭрд╛: рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рдКрдкрд░реА-рд╕реНрддрд░реАрдп рдЧрд░реНрднрдкрд╛рдд рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдЪрд▓реЗ-рд╕реНрддрд░ рдХреЗ рд╕рд╛рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ async / рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕реНрддрд░ рдкрд░ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ, рдЖрдкрдХреЛ .NET рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдХреЛрдб рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рдХреНрд╕ рдФрд░ рдЕрдиреНрдп рдореВрд▓ рдмрд╛рддреЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдХреНрдпрд╛ рдмреЗрд╣рддрд░ рд╣реИ - рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реНрддрд░ рд╕реЗ рдХрд╛рдлреА рдереЛрдбрд╝рд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд╕рд╛рд░ рд╕реНрд╡рддрдГ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред


рдирдП рд╕реЗрдорд┐рдирд╛рд░ рдореЗрдВ, рдЬреЛ рдЗрд╕ рдмрд╛рд░ рди рдХреЗрд╡рд▓ .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ (рдЖрдЦрд┐рд░рдХрд╛рд░, рдмрд╣реБ-рд╕реНрддрд░реАрдп рдХреЛрдб рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рд╕рд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ), рд╣рдо рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреНрд░рдХрдЯ рдХрд░реЗрдВрдЧреЗред


рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рдХреА рдпреЛрдЬрдирд╛


рдореВрд▓ рдмрд╛рддреЗрдВ


рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ: рд╕рдм рдХреБрдЫ рдЬреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдИ рднреА рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдореИрдХреЗрдирд┐рдХреНрд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕, рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдПрдкреАрдЖрдИ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдХреЗрд▓реЗ рдХрдИ рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ?


BCL, рд╢реЗрдбреНрдпреВрд▓рд░реНрд╕, рдереНрд░реЗрдб рд▓реЛрдХрд▓, STA / MTA ...


рдЗрди рдЕрдореВрд░реНрддрддрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдордВрдЪ рдХреЗ рдореВрд▓ рд╕рд╛рд░ рдкрд░ рд╣реА рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ: BCL, рдереНрд░реЗрдб рд▓реЛрдХрд▓, рдереНрд░реЗрдб рдкреВрд▓ рдФрд░ рдЕрдиреНрдп рдореВрд▓ рдмрд╛рддреЗрдВред рдпреЗ рд╕рд╛рд░ рд╣рд░ рдЬрдЧрд╣ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╣реЛрдВрдЧреЗред рд╣рдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди, рд╕рд╛рде рд╣реА рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рджреЗрдЦреЗрдВрдЧреЗред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдРрд╕реЗ рдХрдИ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдордЭреЗрдВрдЧреЗ рдЬреЛ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗ рд╣реИрдВ: рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рдВрджрд░реНрдн, STA / MTA, рдереНрд░реЗрдб рд▓реЛрдХрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред


рдордВрдЪ рдпрд╛рдВрддреНрд░рд┐рдХреА


рдкреНрд░рддреНрдпреЗрдХ рдирдИ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рд╕рд╛рде, рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╛рде-рд╕рд╛рде рдмрддрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдПрдХ рджрд┐рди рдореЗрдВ, рдЖрдк рд╕рднреА рдЬреНрдЮрд╛рди рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрдВрддреНрд░реЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗ: рдЕрдиреБрд╕реВрдЪрд┐рдпрд╛рдВ, рдкреГрд╖реНрдарднреВрдорд┐, рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдХреЛрдб рд╡рд┐рдХрд╛рд╕ рдореЙрдбрд▓ред


рд▓реЙрдХ-рдлреНрд░реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо


рд╕рднреА рддрд░рд╣ рд╕реЗ async / рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рд╣рдо рд▓реЙрдХ-рдлреНрд░реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЦреБрдж рдЙрдиреНрд╣реЗрдВ рдмрдирд╛ рд╕рдХреЗред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред


PLINQ / async-wait


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдЕрдореВрд░реНрдд рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ: PLINQ рд╕реЗ рд▓реЗрдХрд░ рдПрд╕рд┐рдВрдХреНрд╕ / рд╡реЗрдЯ рддрдХ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рд▓рдЧрднрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдФрд░ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░ рд╕реНрддрд░ рдкрд░ рддрд▓реНрд▓реАрди рдХрд░реЗрдВрдЧреЗред


рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдПрдХ рджрд┐рди рдореЗрдВ рдХреЙрдирдПрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ: рдпрд╣ рд╡рд┐рд╖рдп рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рдФрд░ рдмрд╣реБрдЖрдпрд╛рдореА рд╣реИред рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣реИ рдХрд┐ CLRium # 6 рджреЛ рджрд┐рдиреЛрдВ рддрдХ рдЪрд▓реЗрдЧрд╛ред


рд╕рдВрдкрд░реНрдХ рд╡рд┐рд╡рд░рдг


Source: https://habr.com/ru/post/hi460635/


All Articles