c# 多线程 并发 Semaphore\AutoResetEvent都无法解决的需求~有人会吗?

我希望多线程的时候~执行函数a是可以并发执行的~但是执行函数b的话就要同步~如果a在执行,b是要等待的~如果b执行a也是要等待的。简单来说就是~1.进入了b后就是同步执行... 我希望多线程的时候~
执行函数a是可以并发执行的~但是执行函数b的话就要同步~如果a在执行,b是要等待的~如果b执行a也是要等待的。
简单来说就是~
1.进入了b后就是同步执行~(a这时候是不能执行的)
2.只进入a是可以同步多线程同时执行a的~
3.只进入a但是b是不能执行的·要等待。
展开
 我来答
在挂榜岩转陀螺的蔷薇
2020-05-14
知道答主
回答量:1
采纳率:0%
帮助的人:615
展开全部
Semaphore可以实现:
思路如下:
第一步、Semaphore控制起始信号量为0,最大信号量2;
第二步、释放一个信号量;
第三步、在a方法里面释放一次信号量(释放之后,如果此时b被触发,由于信号量由0变为1,所以b方法也可以执行),然后a方法调用waitone占用一个信号量,a方法执行完毕后在释放一次信号量;
第四步、在b方法调用waitone占用一个信号量(由于系统信号量只有一个,被占用后系统信号量为0,此时a方法不能执行),b方法执行完毕后释放一次信号量(b释放一次信号量之后,系统信号量由0变为1,所以方法a就可以执行了);
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
syht2000
高粉答主

2015-08-10 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
问题倒不是太复杂,关键是你的a/b所处的线程环境倒底是怎样的,是多个线程同时启动去执行a,与此同时多个线程启动去执行b还是其它情况。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcxnvbdbd
2015-08-10 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:615万
展开全部
a中会不会执行b,b中会不会执行a?

单个线程的执行流程是什么样的
追问
不会·忘了说·A B完全分开的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式