title: The role of BeginInit() and EndInit() methods in Designer
body: <p>I've red that those methods of <code>ISupportInitialize</code> interface are used by Designer to support optimization, to ensure atomicity of initialization of controls, and to prevent any action on controls during initialization. My questions are:</p>
  
  <ol>
  <li>In what way they help Designer to optimize initialization of controls?</li>
  <li>Why to ensure atomicity of initialization?</li>
  <li>Is there any reasonable example when to use them in code not generated by Designer?</li>
  </ol>