热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

在一个按钮事件中,多个线程等待一个线程完成后,剩下的其他线程再开始执行,求助各位大神

在一个按钮事件中,多个线程(如线程A,B,C)等待一个线程(线程X)完成后,剩下的其他线程再开始执行,求助各位大神
在一个按钮事件中,多个线程(如线程A,B,C)等待一个线程(线程X)完成后,剩下的其他线程再开始执行,求助各位大神

9 个解决方案

#1


你在线程X代码的最后一行,启动A,B,C不就达到你的目的了?

#2


使用backgroundWorker
在backgroundWorker1_DoWork里执行线程X的内容
在backgroundWorker1_RunWorkerCompleted里执行线程A,B,C
完全符合backgroundWorker的设计要求

#3


使用线程池,或者直接锁定线程,又或者锁定线程访问的对象都可以实现

#4


Task  reportData2 = Task.Factory.StartNew(() => ThreadProc_One())
                                       .ContinueWith(() => ThreadProc_Two())
                                       .ContinueWith(() => ThreadProc_Three());

ThreadProc_One, Two, Three, 是你的三个线程函数。把这行代码拷贝到你的代码中,就可运行。
上面代码执行顺序: 先运行One,完成后调用Two。最后调用Three。

#5


引用 4 楼 fanchka 的回复:
Task  reportData2 = Task.Factory.StartNew(() => ThreadProc_One())
                                       .ContinueWith(() => ThreadProc_Two())
                                       .ContinueWith(() => ThreadProc_Three());

ThreadProc_One, Two, Three, 是你的三个线程函数。把这行代码拷贝到你的代码中,就可运行。
上面代码执行顺序: 先运行One,完成后调用Two。最后调用Three。

Task正解

#6


引用 4 楼 fanchka 的回复:
Task  reportData2 = Task.Factory.StartNew(() => ThreadProc_One())
                                       .ContinueWith(() => ThreadProc_Two())
                                       .ContinueWith(() => ThreadProc_Three());

ThreadProc_One, Two, Three, 是你的三个线程函数。把这行代码拷贝到你的代码中,就可运行。
上面代码执行顺序: 先运行One,完成后调用Two。最后调用Three。

我的意思是X执行完后,A,B,C是同时开始执行,ABC是并行的关系

#7


引用 1 楼 Forty2 的回复:
你在线程X代码的最后一行,启动A,B,C不就达到你的目的了?

+1

#8


引用 1 楼 理论自信不靠删贴的回复:
你在线程X代码的最后一行,启动A,B,C不就达到你的目的了?

为什么这么写了之后,我的x线程执行了两次呢?

#9


引用 8 楼 yyf88的回复:
Quote: 引用 1 楼 理论自信不靠删贴的回复:
你在线程X代码的最后一行,启动A,B,C不就达到你的目的了?

为什么这么写了之后,我的x线程执行了两次呢?

哦,是我自己写错了,你这个方法是可行的,多谢

推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了在Pygame中使用矩形对表面进行涂色的方法。通过查阅Pygame文档中的blit函数,可以了解到如何将一个表面的特定部分复制到另一个表面的指定位置上。具体的解决方法和参数说明在文中都有详细说明。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
author-avatar
哓尐_271
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有