2

アプリケーションを閉じるたびに本当に迷惑なエラーが発生します。エラーは次のように表示します。

廃棄されたオブジェクトにアクセスできません

これは、アプリケーションを閉じたときにのみ発生します。

エラーが発生する部品コードは次のとおりです。

/// <summary>
/// Method that shows a log to the user, about what is happening behind scenes.
/// </summary>
/// <param name="logtext"></param>
public void DisplayLog(string logtext)
{
    if (this.txtLog.InvokeRequired)
    {
        Invoke(new MethodInvoker(delegate()
            {
                txtLog.AppendText(logtext + "\n\n");
            }));
    }
    else
    {
        txtLog.AppendText(logtext + "\n\n");
    }
}

エラーはtxtLog.AppendText、elseブラケットの間で発生します。それは私が使用しているスレッドと関係がある可能性があります、上記のコードは私が作成したスレッド内で実行されていません、発生したイベントをチェックするためにバックグラウンドで実行されているスレッドを形成するWindowsのみ、logtextこのメソッドに向けては、と呼ばれる別の内部クラスSerialにあり、スレッドから実行されます。この問題を解決する方法を知っている人はいますか?

前もって感謝します!

4

1 に答える 1

4

IsDisposed使用する前に、TextBoxのプロパティを確認してください。

if (!txtLog.IsDisposed) {
    txtLog.AppendText(logtext + "\n\n");
}
于 2013-02-15T08:20:39.480 に答える