首页 > 编程语言 >上位机_C#多线程的取消、继续、停止

上位机_C#多线程的取消、继续、停止

时间:2023-08-24 21:22:39浏览次数:37  
标签:cancellationToken sender C# void manual private 上位 EventArgs 多线程

 public Form1()
        {
            InitializeComponent();
            Task.Run(async () =>
            {
               

                for (int i = 0; i < 1000; i++)
                {
                    if (cancellationToken.IsCancellationRequested) return;
                    manual.WaitOne();
                    this.Invoke(new Action(() => { textBox1.Text += i.ToString(); }));
                    await Task.Delay(1000);
                }
            }, cancellationToken.Token);
        }
        CancellationTokenSource cancellationToken = new CancellationTokenSource();
        ManualResetEvent manual = new ManualResetEvent(true);

        private void Form1_Load(object sender, EventArgs e)
        {

            cancellationToken.Token.Register(() => { MessageBox.Show("任务已停止"); });
        }

        private void button1_Click(object sender, EventArgs e)
        {
            manual.Reset();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            manual.Set();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            cancellationToken.Cancel();
        }

 

标签:cancellationToken,sender,C#,void,manual,private,上位,EventArgs,多线程
From: https://www.cnblogs.com/appform/p/17655187.html

相关文章

  • 17. 股票 stock
    股权融资企业所有权凭证ProofofOwnership股东可以通过两种方式获得收益股息/分红Dividends出售股票股票类型1.普通股CommonStock记入普通股账户。2.优先股PreferredStock(如二级市场交易的股票)a.优先获得分红。如事先约定优先股股东每股可获得4元分红,那么把......
  • 解决Failed to load module canberra-gtk-module错误
    在Ubuntu环境里,通过./triangulation1.png2.png命令运行高翔的ch7的triangulation程序时报错:Gtk-Message:09:10:26.571:Failedtoloadmodule"canberra-gtk-module"查看一下模块位置:locatelibcanberra-gtk-module/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanb......
  • C#中?的相关使用
     C#中?的相关使用1.可空类型使用后可以使值类型的变量,既可以接收null也可以接收正常的值类型。int?a=null;a=10;2.可空运算符使用?前:if(object!=null){//方法调用object.method();}if(array!=null){//数组索引inta=array[1];......
  • C++11 四种强制类型转换的区别
    static_cast:指针强转,如果某个基类有多个子类,基类的指针实际是指向A类的对象,但使用强转为B类对象,运行时会报错,静态强转没做检测dynamic_cast:只能用于虚函数类,子类与父类指针互转,会检测,转换失败为返回空,不会崩const_cast:用于转换常量,修改常量,先用一个常......
  • C++拷贝构造、赋值函数
    拷贝构造拷贝构造就是一种特殊版本的构造函数,格式:类名(const类名&that){    //执行给每个成员变量进行赋值  }什么时候会调用拷贝构造:当使用旧对象(已new的)给新对象(新new的)初始化时,会自动调用拷贝构造    Testt1;//调用无参构造Testt2=t1......
  • eclipse安装
    1.下载安装eclipse法一:网盘下载链接:https://pan.baidu.com/s/14FRu6jrT6I58xmFsAFTI5Q提取码:wsen法二:官方下载链接:http://www.eclipse.org/downloads/点击 DownloadPackages 根据系统选择 选择SelectAnotherMirror选择China.. 捐款页面不要理会 下载完成......
  • 使用 conda 管理电脑多个 python 版本
    背景之前一直使用python自带的虚拟环境管理工具(virtualen包),虽然很舒服,可以有不同的软件包环境,但是所有环境都只能基于一个python版本。由于历史原因,系统(Ubuntu)升级时给我新增了一个python3.11,我索性就只保留了这一个版本。这两天要使用open3d,结果发现不支持最新版本的......
  • STM32 使用内部晶振导致 Can 通讯异常
    1、问题背景STM32板间通讯,运行一段时间后Can通讯异常,MCU的Can总线外设停止工作2、问题原因STM32使用了内部晶振,仪器运行一段时间后板卡温度上升(散热设计不足),导致芯片时钟异常3、解决方法使用外部晶振,相对内部晶振,外部晶振更可靠,精度也更高。......
  • g2o编译出现的问题及解决办法 By not providing "FindG2O.cmake" in CMAKE_MODULE_PAT
    在安装完该g2o之后运行一些程序如高翔的ch6代码会出现如下错误:CMakeWarningatCMakeLists.txt:10(FIND_PACKAGE):Bynotproviding"FindG2O.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"G2O",bu......
  • Arithmetic Progression 题解
    ArithmeticProgression题目大意存在一个打乱了顺序的等差数列\(a\),你可以询问不超过\(60\)次,每次可以以以下两种方式之一进行询问:查询\(a\)中是否有严格大于\(x\)的数。查询\(a_i\)的值。你需要求出这个等差数列的首项和公差。思路分析比较有意思的题。看......