メインスレッドを呼び出すためのone-size-fits allユーティリティを作成しようとしました。以下は私が思いついたことです - このようにすることに何か問題がありますか? IsHandleCreatedとIsDisposedの両方が重複していないかチェックしていますか?それが廃棄されると、IsHandleCreatedはfalseに設定されますか? (これはブール値のデフォルト値なので)コントロールのスレッドを呼び出すための拡張ユーティリティ
public static void InvokeMain(this Control Source, Action Code)
{
try
{
if (Source == null || !Source.IsHandleCreated || Source.IsDisposed) { return; }
if (Source.InvokeRequired)
{
Source.BeginInvoke(Code);
}
else
{
Code.Invoke();
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
ありがとうございます! ウィリアム
のみ'InvokeRequired'がtrueの場合は呼び出しが非同期になり、falseの場合は同期が完了します。 – vcsjones