如何在C#中将事件添加到包装的类中?
作者:互联网
我正在使用DirectSound框架和SecondaryBuffer对象.我将SecondaryBuffer对象包装在另一个类中,因为我还有其他一些要与SecondaryBuffer相关联的值.
播放声音后,我想处置SecondaryBuffer,但是,检查是否已完成播放的唯一方法是检查其状态.
我想创建一个事件,当SecondaryBuffer的Status为正确值时可以调用该事件.
这是包含我的包装类的代码段.
public class WrappedBuffer
{
public SecondaryBuffer Buffer { get; set; }
//other variables here
public WrappedBuffer(SecondaryBuffer buffer, ... and more)
{
this.Buffer = buffer;
}
}
没有事件,我必须利用一个计时器并检查这样的状态.
if (!Buffer.Status.Playing)
{
Buffer.Dispose();
}
无论如何,我可以使用事件来调用SecondaryBuffer对象的Dispose()方法,而不必使用计时器重新检查Status.
解决方法:
这里没有魔术;如果类型尚未公开事件,则必须轮询直到状态更改.无论如何,这就是实施了多少个事件.在某个时候,如果更改不是通过您的一种方法发生的,则只需注意更改(在这种情况下,您将在设置/更改值时触发事件).
标签:directsound,event-handling,delegates,events,c 来源: https://codeday.me/bug/20191102/1993539.html