.Net 多线程更新Winfom界面,优雅型

    技术2022-07-16  97

    一、Winform代码

    private void btnPublish_Click(object sender, EventArgs e)

    {

    var appWorker = new AppWorker(参数); appWorker.PublishEndEvent += AppWorker_PublishEndEvent;

    appWorker.Publish();

    }

    public delegate void PublishUIHandler(参数);

    private void AppWorker_PublishEndEvent(参数)

     {             PublishUIHandler d = new PublishUIHandler(PublishEndHandle);             Invoke(d, 参数);  }

    private void PublishEndHandle(参数)

    {

               //具体更新主界面的代码

    }

    二、工作类代码

        public class AppWorker     {         public delegate void PublishEventHandler(PublishUIInfoModel publishEndInfo);

            public event PublishEventHandler PublishEndEvent;

            

           public void Publish()         {

                 //长时间执行的代码

                 PublishEndEvent?.Invoke(参数);

            }

     

        }

    Processed: 0.013, SQL: 9