0

STA スレッド内から GUI 要素 (ToolStripStatusLabel) にアクセスしようとしました。その上で呼び出しを取得しようとすると、あらゆる種類の問題が発生します。これは、ToolStripStatusLabel呼び出しがないことを知っているためです。私の最新のエラーは次 のとおりです。

エラーが発生するため、呼び出しなしで更新できないようです: System.NullReferenceException 'が発生しました

ここでのオプションは何ですか? STA スレッド内から GUI スレッドの statuslabel.text を変更して、これを行うにはどうすればよいでしょうか。

ここにある標準の呼び出しコードとコントロール拡張機能のすべてのマナーを使用しましたが、それでも同じ問題があります。

要求されたコード:

private void buttonclick(object sender, EventArgs e)
{
    CheckForIllegalCrossThreadCalls = false;
    var thread = new Thread(() =>
    {
        var ie = watinBrowser();
        log("[!] Starting Application");
        log("blahblah");

    });
    thread.SetApartmentState(ApartmentState.STA);
    thread.Start();

}

private void log(string logIt)
{       

    statusUpdate(logIt);

}

private void statusUpdate(string text)
{
    if (this.statusStrip1.InvokeRequired)
        {
            this.statusStrip1.Invoke(new MethodInvoker(() => this.toolStripStatusLabel1.Text = text));
        }
    else 
        {
            this.toolStripStatusLabel1.Text = text;
        }    
}
4

0 に答える 0