当前位置: 移动技术网 > IT编程>开发语言>c# > C# Task Cancel,CancellationTokenSource.IsCancellationRequested

C# Task Cancel,CancellationTokenSource.IsCancellationRequested

2020年04月09日  | 移动技术网IT编程  | 我要评论
public partial class Form1 : Form { CancellationTokenSource cts = new CancellationTokenSource(); public Form1() { InitializeComponent(); } private voi ...
 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;                                           
            }));
        }

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网