рд░рд┐рд▓реАрдЬ рд╕рдВрд╕реНрдХрд░рдг: рдбрд┐рдмрдЧрд┐рдВрдЧ рдЕрднреА рд╢реБрд░реБрдЖрдд рд╣реИ ...

рдЖрдк рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?



рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдХрд╛рдо рдХрд┐рдпрд╛, рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдЗрдЯ рдкрд░ рдмрдЯрди рджрдмрд╛рдП, рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдЖрдирдиреНрджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдордд рдХрд░реЛ: рд░рд┐рд▓реАрдЬ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдкрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рдЕрд╕рдВрдЧрдд рдмрдЧ рдХреЗ рд╕рд╛рде рдбрд╛рд▓рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдЖрдкрдХреЛ рдмреНрд░рд┐рдЯрд┐рд╢ рдзреНрд╡рдЬ рдкрд░ рдЖрдВрд╕реВ рдмрд╣рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ ...



рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрд╕-рд╢рд┐рдХреЛрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдЖрдк рдЧрд▓рдд рд╣реИрдВ!



рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг



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



рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд░рд┐рд▓реАрдЬ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдмреЛрдЭ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ, рдлрд┐рд░ рднреА .NET рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ C ++ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ ред рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рдирд╣реАрдВ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред



рддреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  1. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  2. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  3. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  4. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  5. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  6. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  7. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  8. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



  9. static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .



static void Main( string [] args) { System.Threading.Timer t = new System.Threading.Timer(state => { Console .WriteLine( "Timer!" ); GC.Collect(); }, null , 0, 1000); Console .ReadKey(); } * This source code was highlighted with Source Code Highlighter .







рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХреЛрдб, рдЬреЛ рд▓реЗрдЦрдХ рдХреЗ рдЗрд░рд╛рджреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддрд┐рд╖реНрдард┐рдд "рдЯрд╛рдЗрдорд░!" рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реИред рдбреАрдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕реЗ рдХреБрдЫ рднреА рд╕рдВрджрд┐рдЧреНрдз рдирд╣реАрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд░рд┐рд▓реАрдЬрд╝ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ... рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ред



рдбреАрдмреНрд░реАрдлрд┐рдВрдЧ



рд╣рд╛рдВ, рд╣рд╛рдВ, рдпрд╣ "рдмрдЧ" рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд░рд┐рдгрд╛рдо рд╣реИ (рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реА рд▓рд╛рдкрд░рд╡рд╛рд╣реА)ред рд▓рд╛рдкрд░рд╡рд╛рд╣реА рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ System.Threading.Timer рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ IDisposable рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИ, рдФрд░, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдкреЛрдЬрд╝ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдареАрдХ рд╣реИ, рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ)ред



рд╣рдо рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдбреАрдмрдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрддреНрдкрдиреНрди IL рдХреЛрдб рдХреА рд╕реВрдЪреА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред

рдбрд┐рдмрдЧ:

.method private hidebysig static void Main(string[] args) cil managed

{

.entrypoint

.maxstack 5

.locals init (

[0] class [mscorlib]System.Threading.Timer t)


L_0000: nop

L_0001: ldsfld class

[mscorlib]System.Threading.TimerCallback ConsoleApplication11.Program::CS$<>9__CachedAnonymousMethodDelegate1

....











рдФрд░ рд░рд┐рд▓реАрдЬ:

.method private hidebysig static void Main(string[] args) cil managed

{

.entrypoint

.maxstack 8

L_0000: ldsfld class [mscorlib]System.Threading.TimerCallback ConsoleApplication11.Program::CS$<>9__CachedAnonymousMethodDelegate1

....











рдореИрдВрдиреЗ рдЕрдВрддрд░ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ ред



рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИ


рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╕рдВрдХрд▓рдХ рдЯрд╛рдЗрдорд░ рд▓рд┐рдВрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ (рдШреЛрд╖рдгрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛) рд╕реНрдЯреИрдХ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬреАрд╕реА рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рдЬреАрд╡рд┐рдд рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рд╡рд┐рдзрд┐ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ) рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЯрд╛рдЗрдорд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред



рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд▓реАрдЬ рдореЗрдВ, рд▓рд┐рдВрдХ рдХрд╣реАрдВ рднреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рдкрд╣рд▓реА (рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ) рд╡рд┐рдзрд┐ GC.Collect () рдЯрд╛рдЗрдорд░ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред



рдЕрдВрддрднрд╛рд╖рдг



рдореБрдЭреЗ рдкреВрд░реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдХрднреА рднреА рд╕реНрдкрд╖реНрдЯ (рдпрд╛ рдирд╣реАрдВ) рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдмрдЧреНрд╕ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдРрд╕реЗ рдХреАрдбрд╝реЗ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░) рдХреА рдЦреЛрдЬ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ "рджреЛрд╖рдкреВрд░реНрдг" рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдЗрд╕рдХреЗ рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рднрд╛рдЧреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ (рдЖрдорддреМрд░ рдкрд░ рдПрдХ .pdb рдлрд╝рд╛рдЗрд▓ рдЖрдорддреМрд░ рдкрд░) рднреА рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред



рдПрдХ рдЕрдЪреНрдЫрд╛ рд╢реБрдХреНрд░рд╡рд╛рд░ рд╣реИ, 8- рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ)



All Articles