如何在c#中向包装类添加事件?
本文关键字:包装类 添加 事件 | 更新日期: 2023-09-27 17:50:35
我正在使用DirectSound
框架和SecondaryBuffer
对象。我将SecondaryBuffer
对象包装在另一个类中,因为我有一些其他的值我想与我的SecondaryBuffer
相关联。
播放声音后,我想处理SecondaryBuffer
,然而,检查它是否完成播放的唯一方法是检查它的状态。
我想创建一个event
,当我的SecondaryBuffer
的状态是正确的值时可以调用。
下面是包含包装类的代码片段。
public class WrappedBuffer
{
public SecondaryBuffer Buffer { get; set; }
//other variables here
public WrappedBuffer(SecondaryBuffer buffer, ... and more)
{
this.Buffer = buffer;
}
}
如果没有事件,我必须使用Timer
并像这样检查状态;
if (!Buffer.Status.Playing)
{
Buffer.Dispose();
}
无论如何,我可以使用events
调用SecondaryBuffer对象的Dispose()方法,而不必使用Timer
重新检查状态。
这里没有魔法;如果该类型尚未公开事件,则必须轮询,直到状态发生变化。这就是实现的事件的数量。在某些情况下,如果更改没有通过您的某个方法发生,您只需要监视更改(在这种情况下,您只需在设置/更改值时触发事件)。