[問題] 如何以async做到同步的效果?

作者: thanksgive (乾溫)   2012-03-20 21:43:46
網路上找了好久還是找不到這個解法 :(
所以想請問大家~
以下目的是想透過contracts來到遠端要資料
我想做到,
_client.getSysParamsCompleted這個事件發生並且
_client_getSysParamsCompleted執行完之後之後,
myFunction這個程式才會return,請問該怎麼做呢?
void myFunction()
{
(...程式碼...)
_client.getSysParamsCompleted += new
EventHandler<getSysParamsCompletedEventArgs>(_client_getSysParamsCompleted);
_client.getSysParamsAsync();
(...程式碼...)
}
作者: VAIOGT (ㄟ( ̄▽ ̄ㄟ))   2012-03-22 15:33:00
寫在Completed裡面?
作者: thanksgive (乾溫)   2012-03-22 16:54:00
因為myFunction目的是從遠端抓最新的資料回來,我想在很多地方都用到myFunction,如果把每個地方要做的事情都寫進去,我擔心會太多且不好處理還是有類似的方法? 我的目的就只是確保抓回來的資料是新的,然後讓後面的流程繼續處理
作者: VAIOGT (ㄟ( ̄▽ ̄ㄟ))   2012-03-23 10:25:00
如果依照不同流程把myFunction()拆開呢?還是一定要合一?
作者: ashram (アシュラム)   2012-04-18 12:15:00
我有個案子也是要模擬同步功能該案子是sl2 現在不知道有沒有別種作法我們的方式是有點取巧的 發送wcf時把畫面disable或用個透明的遮罩蓋住 等到completed再enable或拿掉遮罩後來另一個案子是用遮罩 比disable好用很多 可以設定區域
作者: machung   2012-04-22 16:03:00
你可以用Async CTP library來達成同步效果,但要SL4以上

Links booklink

Contact Us: admin [ a t ] ucptt.com