Ist dies ein geeigneter Weg, um Thread-übergreifende Operationen zu behandeln?
Sollte ich einen neuen Eigenschaftsnamen, etwas wie "EditValueThreadSafe" verwenden, anstatt "EditValue" zu überschreiben? Ich glaube nicht, dass es ein Problem mit den Änderungen an der Implementierung von EditValue gibt, da die Basiseigenschaft unabhängig davon aufgerufen wird.
namespace MyApplication.Components
{
using System.Windows.Forms;
/// <summary>
/// Thread-safe implementation of the DevExpress.XtraEditors.ComboBoxEdit class.
/// </summary>
public class ComboBoxEditThreadSafe : DevExpress.XtraEditors.ComboBoxEdit
{
/// <summary>
/// Gets or sets the edit value.
/// </summary>
/// <value>The edit value.</value>
public override object EditValue
{
get
{
return base.EditValue;
}
set
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate
{
this.SetEditValue(value);
}));
}
else
{
this.SetEditValue(value);
}
}
}
/// <summary>
/// Sets the edit value.
/// </summary>
/// <param name="value">The value.</param>
private void SetEditValue(object value)
{
base.EditValue = value;
}
}
}