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