在我的silverlight應用程序中,我需要等待多個對象完成加載,才能繼續執行。我嘗試使用ManualResetEvent的是這樣的:Silverlight等待多個對象觸發加載事件
ManualResetEvent _waitHandle = new ManualResetEvent(false);
int objectsToLoad = 0;
int objectsLoaded = 0;
private void MethodA()
{
// do stuff
// count number of objects to Load and set objectsToLoad
objectsToLoad = x;
// change multiple objects interface which should trigger ObjectLoaded
// wait for all objects trigger loaded event
_waitHandle.WaitOne();
_waitHandle.Reset();
}
private void ObjectLoaded(object sender, RoutedEventArgs e)
{
objectsLoaded ++;
if (objectsToLoad == objectsLoaded)
{
objectsToLoad = 0;
objectsLoaded = 0;
_waitHandle.Set();
}
}
但當我使用的ManualResetEvent的ObjectLoaded不beeing觸發,好像應用卡上的WaitOne。
我使用了錯誤的方法嗎?我應該如何解決這個問題?
問題是我需要繼續執行從我推出「_waitHandle.WaitOne();」的地方。所以,不幸的是,知道何時在ObjectLoaded方法上加載所有事件並不是很有幫助。 – Canastro 2012-04-02 13:41:08
不幸的是,任何阻止函數完成的東西都會阻止WPF進一步處理。據我所知,這個限制沒有任何辦法。 – 2012-04-02 17:08:40