信号量等待事件触发的窗口窗体
本文关键字:窗口 窗体 等待 事件 信号量 | 更新日期: 2023-09-27 17:54:56
我已经实现了一个缓冲区。缓冲区有两个属性read和write。read函数调用等待read_slot信号量可用。write函数调用在write_slot上等待。write_slot信号量设置为初始计数100和最大计数100,而读槽信号量初始化为初始计数0和最大计数100。
所以我触发一个事件来写缓冲区——>减少写槽——>增加读槽。事件有时触发得非常快。读操作会减小read_slot,增大write_slot。因此,这种架构不会面临死锁——>,因为只有当read_slot为0和write_slot为0时才会发生死锁…这是不可能的,因为在普通互斥锁中,槽位是增加和减少的。
我仍然面临僵局的情况。有谁知道事件触发系统的功能吗?
The event is fired very fast sometimes.
为什么不使用生产者-消费者模式呢?显然,没有写就不能读(读操作应该在写操作之后进行)。在。net中,您可以通过BlockingCollections轻松实现这一点。