C#.NET WinForm 多个子Task嵌套 Task.WaitAll 阻塞UI线程

C#.NET WinForm 多个子Task(子线程)嵌套 Task.WaitAll 阻塞UI线程 (界面)

情况:

DoIt()方法内,开了2个Task 执行任务,子任务中会更新UI。

DoIt() 是同步(UI线程)。

DoIt()部分代码:

DoIt2 方法内会更新UI ,InvokeInserLbxMsg(curMsg); 。

结果导致 DoIt2 更新UI失败,并阻塞了UI线程 。

解决方法:

DoIt 方法内2个Task.WaitAll,换成 ContinueWith:

重点: UI线程的方法(同步),不要用Task.WaitAll。

Original: https://www.cnblogs.com/runliuv/p/16267704.html
Author: runliuv
Title: C#.NET WinForm 多个子Task嵌套 Task.WaitAll 阻塞UI线程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/539916/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 乐观锁与悲观锁

    总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后…

    Java 2023年6月9日
    082
  • JAVA基础之泛型

    像List代表了只能存放String类型的对象的List集合。在java中这样用: //创建一个只能存放String类型的List集合 List 想知道为什么使用泛型,我们可以看看…

    Java 2023年5月29日
    065
  • 好家伙,分布式配置中心这种组件真的是神器

    我是3y,一年 CRUD经验用十年的 markdown程序员👨🏻‍💻常年被誉为优质八股文选手 上次给大家安排了 监控的相关使用姿势,不知道大家有没有配置起来。但我可不管你们的进度怎…

    Java 2023年6月9日
    086
  • HashMap中红黑树插入节点的调整过程

    一、引言 二、HashMap源码中红黑树插入节点的调整过程 三、阅读HashMap源码的一些Tips 1. 代码风格 2. 变量名 balanceInsertion方法中的变量名 …

    Java 2023年6月6日
    079
  • 【SSM框架】MyBatis笔记 — 三层架构;MyBatis框架结构;MyBatis 核心配置文件;sql 映射文件;MyBatis 使用初步(通过Maven添加依赖)

    楔子: 一、三层架构: 1、三层架构包含的三层: 界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data …

    Java 2023年6月8日
    069
  • 贪心算法

    贪心算法 文章目录 贪心算法 一、基本思路 二、代码 一、基本思路 1.建立数学模型来描述问题。2.把求解的问题分成若干个子问题。3.对每一子问题求解,得到子问题的局部最优解。4….

    Java 2023年6月5日
    086
  • LeetCode刷题

    1.53最大和的连续子数组 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 class…

    Java 2023年6月5日
    073
  • 干了3年程序员,我开窍了

    “当时每酣醉,不觉行路难”。 每每有人问我: 程序员工作三年,要大致学习到什么程度才算合格? 这时候,我感觉很难给出一个绝对正确的回答。 我能做的就是,如实…

    Java 2023年6月7日
    087
  • MySQL之事务和redo日志

    事务 事务的四个ACID特性。 Atomicity 原子性 Consistency 一致性 Isolation 隔离性 Durability 持久性 原子性 原子性即这个事务的任务…

    Java 2023年6月16日
    0106
  • Java集合原理分析和知识点大杂烩(多图初学者必备!!)

    一、数据结构 ​ 数据结构就是计算机存储、组织数据的方式。 ​ 在计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间,常用O符号来表述。​ 时间复杂度是同一问题…

    Java 2023年6月7日
    083
  • Java(12)静态字段与静态方法

    之前我们都定义的 main方法都被标记了 static修饰符,那到底是什么意思?下面我们来看看 静态字段 如果将一个字段定义为 static,每个类只有一个这样的字段。而对于非静态…

    Java 2023年6月9日
    073
  • 【Redis】字典

    Redis 字典 基本语法 字典是Redis中的一种数据结构,底层使用哈希表实现,一个哈希表中可以存储多个键值对,它的语法如下,其中KEY为键,field和value为值(也是一个…

    Java 2023年6月8日
    076
  • 跟着柴毛毛学Spring(3)——简化Bean的配置

    通过前面的学习。我们会感觉到对于一个有较多Bean的大项目,Spring的配置会比較复杂。 那么接下来我们就介绍怎样简化Spring的配置。 简化Spring的配置主要分为两类:1…

    Java 2023年5月30日
    057
  • slf4j、log4j2及logback使用

    slf4j、log4j2及logback使用 1、问题来源 之前看过关于slf4j、log4j2及logback的介绍,slf4j是门面,log4j2及logback是具体实现,仅…

    Java 2023年6月15日
    0109
  • Java多态的理解

    一、多态在类和接口中的使用 1.类:父类的引用指向子类对象 Animal animal = new Dog( ); 2.接口:接口引用指向实现类的对象 Java中,接口和类是并列的…

    Java 2023年6月5日
    065
  • 枚举

    枚举 自定义类实现枚举 1.不需要提供set方法,因为枚举对象值通常为只读2.对枚举对象/属性使用final + static共同修饰,实现底层优化3.枚举对象名通常使用全部大写,…

    Java 2023年6月5日
    087
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球