使用委托和Invoke方法。
private delegate void addStatusUnSafe(string status);
public void addStatus(string status)
{
DateTime dt = System.DateTime.Now;
string now = "[" + dt.ToShortDateString() + " " + dt.ToShortTimeString() + "]";
if (this.listBoxStatus.InvokeRequired)
{
addStatusUnSafe aus = new addStatusUnSafe(addStatus);
this.listBoxStatus.Invoke(aus, new string[] { status });
}
else
{
this.listBoxStatus.Items.Add(now + status);
if (this.listBoxStatus.Items.Count > 0)
{
this.listBoxStatus.SelectedIndex = this.listBoxStatus.Items.Count - 1;
}
}
}