title: Cross thread UI component call
body: <p>Is this an appropriate way of handling cross-thread operations?</p>
  
  <p>Should I use a new property name, something like "EditValueThreadSafe" instead of overriding "EditValue"?  I don't think there is an issue with the changes to the implementation of EditValue, as the base property is called regardless.</p>
  
  <pre><code>namespace MyApplication.Components
  {
      using System.Windows.Forms;
  
      /// &lt;summary&gt;
      /// Thread-safe implementation of the DevExpress.XtraEditors.ComboBoxEdit class.
      /// &lt;/summary&gt;
      public class ComboBoxEditThreadSafe : DevExpress.XtraEditors.ComboBoxEdit
      {
          /// &lt;summary&gt;
          /// Gets or sets the edit value.
          /// &lt;/summary&gt;
          /// &lt;value&gt;The edit value.&lt;/value&gt;
          public override object EditValue
          {
              get
              {
                  return base.EditValue;
              }
  
              set
              {
                  if (this.InvokeRequired)
                  {
                      this.Invoke(new MethodInvoker(delegate
                      {
                          this.SetEditValue(value);
                      }));
                  }
                  else
                  {
                      this.SetEditValue(value);
                  }
              }
          }
  
          /// &lt;summary&gt;
          /// Sets the edit value.
          /// &lt;/summary&gt;
          /// &lt;param name="value"&gt;The value.&lt;/param&gt;
          private void SetEditValue(object value)
          {
              base.EditValue = value;
          }
      }
  }
  </code></pre>