3
我正在使用DirectSound
框架和SecondaryBuffer
对象。我正在将SecondaryBuffer
对象包装到另一个课程中,因为我有一些其他值要与我的SecondaryBuffer
相关联。如何将事件添加到C#中的包装类?
播放声音后,我想处理SecondaryBuffer
,但检查播放完成的唯一方法是检查它是否为状态。
我想创建一个event
,当我的SecondaryBuffer
的状态是正确的值时可以调用event
。
这是包含我的包装类的片段。
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
状态。
如果没有魔法,检查这些更改的最佳方法是什么?定时器是不断调查的最佳方式吗? – 2011-04-18 21:36:10
肯定是的,计时器是最好的方式。你不能这样做,所以... – 2011-04-18 21:43:50
@Arnaud:他们是其他方式来做到这一点。我可以创建另一个线程并使用一段时间(true){Thread.Sleep(1)//检查值}循环。 – 2011-04-18 21:46:59