我倾向于在我的大多数应用程序的底部使用 StatusStrip 来进行简单的状态更新,偶尔还会使用进度条。
但是,似乎 ToolStripStatusLabels 没有从控件继承,因此它们没有 .Invoke 或 .InvokeRequired。那么我将如何进行线程安全调用来更改它的 text 属性呢?
为后代和其他人搜索的编码答案:
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;
}