silverlight非同步陷阱(二)迴圈

2021-09-08 21:21:47 字數 358 閱讀 6696

由於非同步完成事件不能確定,順序也不能確定,如果把非同步操作放到迴圈內,可能會產生意想不到的結果。

下面的程式本意是:迴圈items集合,為每個item賦值。

foreach (bookrankitem item in items)

;service.loaded -= bookpagehander;

service.loaded += bookpagehander;

service.load(item.uri);

由於賦值操作在非同步內執行,執行完的順序時間都是隨機的,pageditems內容可能是任意的item。

如果外層迴圈到最後乙個,非同步才開始,會導致pageditems載入的都是最後一項。

Silverlight 非同步單元測試

silverlight 中的很多操作都是非同步的,很多情況下要求單元測試也是非同步的,但是介紹非同步單元測試的文件很少。通過對 silverlight toolkit 中的 microsoft.silverlight.testing 和 microsoft.visualstudio.qualityt...

Silverlight 非同步單元測試

silverlight 中的很多操作都是非同步的,很多情況下要求單元測試也是非同步的,但是介紹非同步單元測試的文件很少。通過對 silverlight toolkit 中的 microsoft.silverlight.testing 和 microsoft.visualstudio.qualityt...

Silverlight 非同步任務佇列實現

眾所周知,在 silverlight 執行時中,不允許堵塞 ui 的操作出現,很多操作只能通過非同步實現。但是,在 silverlight 的實際開發工作中,經常出現需要將多個非同步操作按照一定的順序執行,因而需要乙個能夠按照順序執行非同步任務的佇列,下面是乙個簡單的設計 首先,我們需要定義乙個介面...