在我的大多数应用程序底部,我倾向于使用StatusStrip来显示简单的状态更新和偶尔的进度条。
然而,似乎ToolStripStatusLabel没有从控件继承,因此它们没有.Invoke或.InvokeRequired属性。那么,我该如何通过线程安全地调用来更改它的文本属性呢?
为了记录和帮助其他人,以下是编码答案:
Action<string> test=(text) =>
{
if (this._statusStrip.InvokeRequired) this._statusStrip.Invoke(
new MethodInvoker(() => this._lblStatus.Text = text));
else this._lblStatus.Text = text;
};
或。private void TestInvoker(string text)
{
if (this._statusStrip.InvokeRequired)
this._statusStrip.Invoke(
new MethodInvoker(() => this._lblStatus.Text = text));
else this._lblStatus.Text = text;
}