欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C# 子线程调到主线程运行 主要是修改UI界面

程序员文章站 2022-03-04 12:33:39
...

UIHelper 类


        static public class UIHelper
        {
            /// <summary>
            /// Access the GUI thread
            /// </summary>
            /// <param name="control"></param>
            /// <param name="code"></param>
            static public void InvokeOnUIifRequired(Control control, MethodInvoker code)
            {
                if (control.InvokeRequired && control.Visible == true)
                {
                    control.Invoke(code);
                }
                else
                {
                    code.Invoke();
                }

                /*Thread t = new Thread(new ThreadStart(delegate()
                {
                    CrossThread cross = delegate()
                {
                    control.Refresh();
                };
                control.Invoke(cross);
                }));*/
            }
        }

使用:

 UIHelper.InvokeOnUIifRequired(this, delegate
                {
                    TempPictureBox.Image = img;
                });

   public delegate void Delegate_UpdateChannel(int iIndex);//0--15