PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_Sharp
[问题] 请教这种情形下thread的写法
楼主:
WillBeFine
(努力)
2023-06-30 00:52:31
大家好:
小弟现在有一问题关于多线程的设计,
如果现在有2个线程: ThreadA 及 THreadB,
如果想要 ThreadA 完成后, 再开始做 ThreadB,
请问要怎样写比较好???
P.S. ThreadA 及 THreadB 都各自己需要得到收到某些讯息后才算是完成工作
using System;
using System.Threading;
class Program
{
static void Main(strin g[] args)
{
Thread t1 = new Thread(WorkA);
t1.Start();
Thread t2 = new THread(WorKB);
t2.Start();
}
以上这样会两件事一起做.. 不是 ThreadA完全完成后到ThreadB开始
}
谢谢各位指导
作者: braverycloud (岚)
2023-06-30 01:13:00
t1.Start(); //下一行接 t1.Join();
https://reurl.cc/3x6988
作者:
s4300026
(s4300026)
2023-06-30 12:34:00
在workA里面呼叫t2 start
楼主:
WillBeFine
(努力)
2023-06-30 19:09:00
将WorkB放在WorkA后面比较不易控制流程呢.谢谢您
作者:
Litfal
(Litfal)
2023-07-05 23:30:00
改用Task吧
作者:
ssccg
(23)
2023-07-06 10:23:00
WorkB要等WorkA完成的话不应该用两个thread,应该就是一个thread配一个queue去跑才对 (在现成包装好的lib这个通常叫做executor或scheduler)当然记得要用single thread executor/scheduler如果需求再复杂一点,其实不止是一个thread可满足的,最终还是要有个地方去写流程控制,当然不建议写在Work里把工作排进scheduler通常会回个可用来控制的物件,假设就叫Task,通常会提供wait、cancel、run next之类的控制方法
作者:
kobe8112
(小B)
2023-07-06 14:25:00
抱歉是不是我资质驽钝...ThreadA执行WorkA,ThreadB执行WorkB想要 ThreadA 完成后, 再开始做 ThreadB但原PO却说将WorkB放在WorkA后面比较不易控制流程
作者:
ssccg
(23)
2023-07-06 15:53:00
原PO的意思应该是“在workA里面呼叫t2 start”,把控制流程程式写到原本单纯的Work中不好当然其实不需要去改WorkA里面,而是把t1执行的东西改成() => { WorkA(); //呼叫t2 start } 就好了
作者:
Litfal
(Litfal)
2023-07-07 15:55:00
我猜原po只是单纯简化状况吧
作者:
chchwy
(mat)
2023-08-08 22:40:00
A做完才做B,听起来就不需要Thread 呀
作者:
Roleman
(米先生)
2023-08-13 09:38:00
那你用单绪做就可以啦
继续阅读
[问题] vs2022 表单设计工具突然不见(第n次)
chin2049
[问题] .Net 5的mvc,前端ajax call后端的问题
sdtt
[问题] BinaryWrite下载档案后 再注册一段script
kisha024
[问题] 无法导入ink.runtime
Alexander1
大批撷取chatGPT资料,以C#实作!
southknight
[问题] XmlDocument 的 DocumentElement 属性
kisha024
[问题] winform下简单显示3D数据的方法
kenny2963
[问题] 无法使用AddHeader于ResClient取得资料
ansem
[问题] 要如何收 BroadcastSystemMessage() 讯息
don323
[问题] 请教WPF第三方套件的购买
z1976
Links
booklink
Contact Us: admin [ a t ] ucptt.com