WPF:Task与事件在下载同步界面中的应用

2021-02-10 21:15

阅读:380

标签:object   end   normal   tor   route   factor   tin   blog   发送   

//设置一个下载事件类,可传输一个字符串

 public class DownloadEventArgs:EventArgs
    {
        public string id { get; set; }
        public DownloadEventArgs(string m)
        {
            id = m;
        }
 
    }


//下载中事件

        public delegate void DownloadingEvent(object sender, DownloadEventArgs e);
        public event DownloadingEvent _DownloadingEvent;

 // TODO 下载按钮
        void DownLoad_Click(object sender, RoutedEventArgs e)
        {
            if (sender is Button)
            {
                Button temp = sender as Button;
                if (temp.Tag == null) { return; }
                string id = temp.Tag;
                if ( id == null) { return; }
                Task.Factory.StartNew(() =>
                {
                   //发送下载中事件
                            DownloadEventArgs downloading = new DownloadEventArgs(id);
                            _DownloadingEvent(temp, downloading);
                }).ContinueWith(x =>
                {
                    this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
                    {
                        temp.IsEnabled = false;
                    });
                });
            }
        }

//应用事件改变按钮样式
void main()
{
  Button DownloadButton = new Button();
  _DownloadingEvent += (a, b) =>
                        {
                            if (_DownloadingEvent != null)
                            {
                                if (b.id == a.Tag)
                                {
                                    DownloadButton.IsEnabled = false;
                                    DownloadButton.Content = "下载中";
                                }
                            }
                        }; 
}

 

WPF:Task与事件在下载同步界面中的应用

标签:object   end   normal   tor   route   factor   tin   blog   发送   

原文地址:https://www.cnblogs.com/kid526940065/p/8516063.html


评论


亲,登录后才可以留言!