Cross-thread operation not valid in Windows Forms

前端 未结 7 1437
醉酒成梦
醉酒成梦 2020-12-11 17:52

Could anyone help me i have a problem I\'m trying to get this code to work in the background via threadpool but i cannot seem to get it to work i keep getting this error:

7条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-11 18:15

    This extension method solves the problem too.

    /// 
    /// Allows thread safe updates of UI components
    /// 
    public static void InvokeEx(this T @this, Action action) where T : ISynchronizeInvoke
    {
        if (@this.InvokeRequired)
        {
            @this.Invoke(action, new object[] { @this });
        }
        else
        {
            action(@this);
        }
    }
    

    Use in your worker thread as follows

    InvokeEx(x => x.MyControl.Text = "foo");
    

提交回复
热议问题