以下は、私が作成した、RichTextControl からテキストを取得して返すメソッドです。
/** @delegate */
private delegate string RichTextBoxObtainContentsEventHandler();
private string ObtainContentsRichTextBox()
{
if (richtxtStatus.InvokeRequired)
{
// this means we're on the wrong thread!
// use BeginInvoke or Invoke to call back on the
// correct thread.
richtxtStatus.Invoke(
new RichTextBoxObtainContentsEventHandler(ObtainContentsRichTextBox)
);
return richtxtStatus.Text.ToString();
}
else
{
return richtxtStatus.Text.ToString();
}
}
ただし、これを実行しようとすると、次の例外が発生します: Cross-thread operation not valid: コントロール 'richtxtStatus' は、それが作成されたスレッド以外のスレッドからアクセスされました。
上記のコードを変更して内容を返すにはどうすればよいですか?