Auswirkungen von CheckForIllegalCrossThreadCalls = false

Ich habe kürzlich eine Anwendung von VS2003 auf VS2008 aktualisiert und wusste, dass ich mit einer Vielzahl von "Cross-Thread-Operationen sind nicht gültig: Steuern Sie 'myControl', auf die von einem anderen Thread als dem Thread zugegriffen wird, für den es erstellt wurde." in dem, was ich glaube, ist der richtige Weg (siehe Codebeispiel unten). Ich stoße auf zahlreiche Steuerelemente, die eine ähnliche Korrektur benötigen. Sie möchten keinen ähnlichen Code für jedes Label, Textfeld usw. haben, auf das von einem Nicht-UI-Thread zugegriffen wird. Was sind die Konsequenzen, wenn Sie einfach das @ setzeCheckForIllegalCrossThreadCalls = false für die gesamte App?

Ich habe einen ... gefunden CodeProject article mit verschiedenen Problemumgehungen und einer Warnung am unteren Rand, die Eigenschaft NICHT festzulegen. Ich suche andere Meinungen / Erfahrungen zu diesem Thema.

private void ShowStatus(string szStatus)
{
    try
    {
        if (this.statusBar1.InvokeRequired) { BeginInvoke(new MethodInvoker(delegate() { ShowStatus(szStatus); })); }
        else { statusBar1.Panels[0].Text = szStatus; }
    }
  catch (Exception ex)
  {
    LogStatus.WriteErrorLog(ex, "Error", "frmMNI.ShowStatus()");
  }
}

Ich habe einen anderen Artikel mit möglichen Lösungen gefundenSO Frage 2367718

Antworten auf die Frage(2)

Ihre Antwort auf die Frage