рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдирд┐рдЬреА рд╡рд░реНрдЧ рддрд░реНрдХ рдХреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдкрд░ рдЫреБрдЖред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдереАрд╕рд┐рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ рд╕рд╛рд░реНрдердХ рд╣реЛрдЧрд╛, рдмрд╣реБрдордд рд╕реЗ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдЬреА рддрд░реАрдХреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдирд┐рдЬреА рддрд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдореБрдЦреНрдп рдереАрд╕рд┐рд╕ рдХреЛ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреИрдЯ рдХреЗ рддрд╣рдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред
рд╕реНрдЯреЙрдХ рдЙрджрд╛рд╣рд░рдг
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЖрдпрд╛ред рдЙрдирдХрд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╡рд░реНрдЧ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдХреЛрдИ рднреА рдЗрд╕реЗ (рдпрд╛ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░) рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рд▓рд┐рдЦреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдЦрд░реНрдЪ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЕрдиреБрдореЛрджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреЛ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреЛрдб рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрд░реНрдХ ProcessMessage рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдЙрджреНрджреЗрд╢реНрдп: рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛ рдПрдХ рдирдпрд╛ рдЭрдВрдбрд╛ рдкреЗрд╢ рдХрд░рдирд╛ред рдЗрд╕ рдЭрдВрдбреЗ рдореЗрдВ рдЧреИрд░-рддреБрдЪреНрдЫ рддрд░реНрдХ рд╣реИред
рдЖрдк рдзреНрд╡рдЬ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ?
using System; using System.Threading.Tasks; using System.Threading; using System.Messaging; namespace PublicMethodNottrivialSample { public class MessageProcessorService { private object _lockObject = new object(); private CancellationTokenSource _cancellationSource; private Action _receiveMessage; private int _listenerThreads = 5; public void Start() { lock (_lockObject) { _cancellationSource = new CancellationTokenSource(); Task.Factory.StartNew(() => InitializeReceiveLoop(_cancellationSource.Token), _cancellationSource.Token); } } private void InitializeReceiveLoop(CancellationToken cancellationToken) { _receiveMessage = () => { while (!cancellationToken.IsCancellationRequested) { using (MessageQueueTransaction msgTx = new MessageQueueTransaction()) { try { msgTx.Begin();
рд╡рд░реНрдЧ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХрд╛ рд╕реНрдЯрд╛рд░реНрдЯ () рд╣реИред рдпрджрд┐ рдЖрдк рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рд░рдирд┐рдВрдЧ рдереНрд░реЗрдбреНрд╕ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЙрдирдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреАред
рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдзреНрд╡рдЬ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреМрди рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдзрд┐ рддрдп рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╡рд▓ рдкрд░рд╕реНрдкрд░ рддрд░реНрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╢реЗрд╖ рд░рд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ: рдкрд░реАрдХреНрд╖рдг рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдпрд╛ рддреЛ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛, рдпрд╛ рдЬрдЯрд┐рд▓ рдХреЛрдбред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓реЛрдХ рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рднрд╛рд╡рдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд▓рд┐рдЦреЗрдЧрд╛: "TDD рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рд╣реИ", "рдЧреНрд░рд╛рд╣рдХ рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ" рдпрд╛ "рдЯреЗрд╕реНрдЯ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ"ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рдеред
"рдЖрдк рдЪреЗрдХрд░реНрд╕, рдпрд╛ рдЬрд╛рдУ"
рдмреЗрд╢рдХ, рдмрджрд▓реЗ рд╣реБрдП рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджреБрд╡рд┐рдзрд╛, рдЙрдкрдпреЛрдЧреА рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдорд╣рдВрдЧрд╛ рддрд░реАрдХрд╛ рдЪреБрдирдирд╛ рд╣реИред рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ: рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрджреНрдзрддрд┐ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ - рдЖрдк рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓рд╛рдЧрдд рдФрд░ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдореИрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рддрд╛ рд╣реВрдВ, рдиреАрдЪреЗ рд╣рдо рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ:
- рдирд┐рдЬреА рдкрджреНрдзрддрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рд╡рд┐рдзрд┐ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рдЖрдВрддрд░рд┐рдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдпрджрд┐ рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрджреНрдзрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рд▓реЗ рддреАрди рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдХреЛ рдХрдо рд╢реНрд░рдо рд▓рд╛рдЧрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдирд┐рдЬреА рддрдереНрдп рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдорд╛рдореВрд▓реА рд╢реИрд▓реАрдЧрдд рдорддрднреЗрджреЛрдВ рдХреЗ рд╕рд╛рдеред рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЪреБрдирд╛рд╡ рднрд╛рд╖рд╛ рдХреА рддрдХрдиреАрдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
- рдпрджрд┐ рд╡рд┐рдзрд┐ рдХреЛ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХрд╣реАрдВ рд╕реЗ рднреА рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрдХреНрд╖рд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдХреНрд▓рд╛рд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЦреАрдВрдЪреЗрдВ;
- рдпрджрд┐ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдЕрдВрджрд░, рддреЛ рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ рдХрд░реЗрдВ ;
- рдпрджрд┐ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВ ред
рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЯрд░рдирд▓ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЗрдВрдЯрд░рдиреИрд╢рдирд▓ рд╡рд┐рд╡рд┐рдЯреЗрдХреНрдЯреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓реЗрдЦрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реЛрдЧрд╛ред
рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдЖрдЗрдП рдХрд╛рд░реНрдп рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЙрдкрд░реЛрдХреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рдж, рдореИрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░реВрдВрдЧрд╛:
- ProcessMessage рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░реЗрдЧрд╛
- рдлреНрд▓реИрдЧ рд▓реЙрдЬрд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдзрд┐ рддреИрдпрд╛рд░ рдХрд░реЗрдЧрд╛ (рдЙрджрд╛ред GetFlagValue)
- рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП GetFlagValue рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВрдЧреЗ
- рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ProcessMessage рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ GetFlagValue рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреВрдВрдЧрд╛ рдХрд┐ рдореИрдВ ProcessMessage рдкрджреНрдзрддрд┐ рдореЗрдВ GetFlagValue рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдмрд╢рд░реНрддреЗ рдХрд┐ рдореИрдВрдиреЗ GetFlagValue рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЗрди рдорд╛рдорд▓реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реЛред рдЕрдирд┐рдпреЛрдЬрд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЦреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрдирд╛ рд╣реБрдЖ рд╣реИ:
- рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЛ GetFlagValue рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- ProcessMessage рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдзреНрд╡рдЬ рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк ProcessMessage рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдФрд░ GetFlagValue рдХреЗ рд▓рд┐рдП рдХрдИ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред рдЖрдкрдХреА рд░рд╛рдп