• C# Task Cancel,CancellationTokenSource.IsCancellationRequested


     public partial class Form1 : Form
        {
            CancellationTokenSource cts = new CancellationTokenSource();        
            public Form1()
            {
                InitializeComponent(); 
            }
    
            private void StartClick(object sender, EventArgs e)
            {             
                Task testTask = Task.Run(() =>
                {
                    while (!cts.IsCancellationRequested)
                    {
                        string str = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
                        BeginInvoke(new Action(() =>
                        {
                            listBox1.Items.Add(str);
                        }));
                        Thread.Sleep(500);
                    }
                }, cts.Token);
            }
    
            private void CancelClick(object sender, EventArgs e)
            {
                cts.Cancel();
                string str = "Task cancelled";
                listBox1.Items.Add(str);
            }
        }
    public partial class Form1 : Form
        {
            CancellationTokenSource cts = new CancellationTokenSource();
            List<string> lbList = new List<string>();      
            public Form1()
            {
                InitializeComponent();
                listBox1.DataSource = lbList; 
            }
    
            private void StartClick(object sender, EventArgs e)
            {             
                Task testTask = Task.Run(() =>
                {
                    while (!cts.IsCancellationRequested)
                    {
                        string str = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
                        BeginInvoke(new Action(() =>
                        {
                            lbList.Add(str);
                            listBox1.DataSource = null;
                            listBox1.DataSource = lbList;                                         
                        }));
                        Thread.Sleep(500);
                    }
                }, cts.Token);
            }
    
            private void CancelClick(object sender, EventArgs e)
            {
                cts.Cancel();
                string str = "Task cancelled";
                BeginInvoke(new Action(() =>
                {
                    lbList.Add(str);
                    listBox1.DataSource = null;
                    listBox1.DataSource = lbList;                                           
                }));
            }
        }
     public partial class Form1 : Form
        {
            CancellationTokenSource cts = new CancellationTokenSource();
            List<string> lbList = new List<string>();      
            public Form1()
            {
                InitializeComponent();
                listBox1.DataSource = lbList; 
            }
    
            private void StartClick(object sender, EventArgs e)
            {             
                Task testTask = Task.Run(() =>
                {
                    while (!cts.IsCancellationRequested)
                    {
                        AddContentToLBx();                    
                    }
                }, cts.Token);
            }
    
            int i = 0;
    
            private void AddContentToLBx()
            {
                for(i=0;i<10000;i++)
                {
                    string str = $"i={i},{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
                    BeginInvoke(new Action(() =>
                    {
                        lbList.Add(str);
                        listBox1.DataSource = null;
                        listBox1.DataSource = lbList;
                    }));
                    Thread.Sleep(500);
                    if (cts.IsCancellationRequested)
                    {
                        break;
                    }
                }
            }
    
            private void CancelClick(object sender, EventArgs e)
            {
                cts.Cancel();
                string str = $"i={i},Task cancelled";
                BeginInvoke(new Action(() =>
                {
                    lbList.Add(str);
                    listBox1.DataSource = null;
                    listBox1.DataSource = lbList;                                           
                }));
            }
        }
    int i = 0;
            List<string> lbList = new List<string>();      
            private bool IsCancelled { get; set; }
            public Form1()
            {
                InitializeComponent();
                listBox1.DataSource = lbList; 
            }
    
            //Start or restart
            private void StartClick(object sender, EventArgs e)
            {
                IsCancelled = false;
                if(!IsCancelled)
                {
                    Task testTask = Task.Run(() =>
                    {
                        AddContentToLBx();
                    });
                }           
            }        
    
            private void AddContentToLBx()
            {
                while (i < 10000)
                {
                    if (!IsCancelled)
                    {
                        string str = $"i={i},{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}";
                        BeginInvoke(new Action(() =>
                        {
                            lbList.Add(str);
                            listBox1.DataSource = null;
                            listBox1.DataSource = lbList;
                        }));
                        Thread.Sleep(500);
                    }
                    else
                    {
                        break;
                    }
                    i++;
                }
            }
    
            private void CancelClick(object sender, EventArgs e)
            {            
                IsCancelled = true;
                string str = $"i={i},Task cancelled";
                BeginInvoke(new Action(() =>
                {
                    lbList.Add(str);
                    listBox1.DataSource = null;
                    listBox1.DataSource = lbList;                                           
                }));
            }
  • 相关阅读:
    Linux系统下使用pwgen生成密码的使用教程
    使用John the ripper工具来尝试破解Linux密码
    把Arch Linux安装到U盘上的具体教程
    Arch Linux安装后的一些初始设置简介
    Linux下的sed命令使用详解
    Ubuntu GNOME 安装日语输入法(收集)
    网页设定固定背景图片(抄袭自百度FM)
    一个不错的flash 模板
    Ubuntu 14.04 LAMP搭建小记
    KindEditor 修改多图片上传显示限制大小和张数
  • 原文地址:https://www.cnblogs.com/Fred1987/p/12665044.html
Copyright © 2020-2023  润新知