2013-06-03 101 views
0

我想用this solution來同步等待異步操作。Windows Store應用程序 - 同步等待異步操作

public static ConfiguredTaskAwaitable<T> StartAsTask<T> (
    this IAsyncOperation<T> self, bool continueOnContext) 
{ 
    if (self == null) 
     throw new ArgumentNullException("self"); 

    self.AsTask().ConfigureAwait(continueOnContext); 
} 

當我把這種方法,我得到錯誤信息「Windows.Foundation.IAsyncAction」不包含定義「StartAsTask」,並沒有擴展方法。

await FileIO.WriteTextAsync(sampleFile, sampleString).StartAsTask (false); 

任何人都可以給我任何方向?

+0

同步等待「異步」操作明確地表明你是***沒有打算做的;簡單地「等待」結果會好得多。重新擴展方法 - 你可以*嘗試*添加'Microsoft.Bcl.Async'(來自nuget),但坦率地說,如果它不是專門包含在你不應該做的原因那***。 –

回答

1

這不是一個同步執行任何事情的解決方案,它只是在不需要時避免回調到UI線程。實際代碼的問題在於,您已經爲IAsyncOperation<T>定義了擴展名,而不是IAsyncAction