C#でフォームアプリを作成していて、任意のスレッドからリッチテキストボックスの内容を変更できるようにする必要があります。デリゲートとInvokeRequiredを使用してみましたが、作成したデリゲートでクロススレッド呼び出しエラーが発生します。 、およびInvokeRequiredは、エラーを発生させることなくフォームをクラッシュさせます。関数私はどのスレッドからでも実行できる必要があります:
public static void updateSub(int what)
{
subDisplay.subBox.Text = tb[what];
}
私が使おうとしたデリゲート:
public delegate void UpdateDelegateVoid(int what);
static public UpdateDelegateVoid uSub = new UpdateDelegateVoid(updateSub);
uSub(0);
私のInvokeRequiredコード:
public static void updateSub(int what)
{
if (subDisplay.subBox.InvokeRequired)
{
subDisplay.subBox.Invoke(new MethodInvoker(finish));
}
else
{
subDisplay.subBox.Text = tb[what];
}
}
上記のコードが機能しない理由はよくわかりません。ありがとう!