Mah*_*esh 6 c# windows-phone-7 async-await
_fbClient.GetCompleted += new EventHandler<FacebookApiEventArgs>(OnFetchPageNotification);
_fbClient.GetAsync(_kNotificationPath, new Dictionary<string, object> { { "access_token", _kPageAccessToken } });
Run Code Online (Sandbox Code Playgroud)
如何将上面的代码转换为wp7中的等待代码:
object = await _fbClient.GetAsync(_kNotificationPath, new Dictionary<string, object> { { "access_token", _kPageAccessToken } });
Run Code Online (Sandbox Code Playgroud)
我也有CTP安装和任务并行库.
Dam*_*ver 17
Async CTP附带了一个文档,该文档描述了如何使每个现有模式适应基于任务的异步模式.它说基于事件的一个更可变,但确实给出了一个例子:
public static Task<string> DownloadStringAsync(Uri url)
{
var tcs = new TaskCompletionSource<string>();
var wc = new WebClient();
wc.DownloadStringCompleted += (s,e) =>
{
if (e.Error != null) tcs.TrySetException(e.Error);
else if (e.Cancelled) tcs.TrySetCanceled();
else tcs.TrySetResult(e.Result);
};
wc.DownloadStringAsync(url);
return tcs.Task;
}
Run Code Online (Sandbox Code Playgroud)
在被包装的原始函数的位置DownloadStringAsync,参数与传递给该函数的参数匹配,并且DownloadStringCompleted是被监视的事件.
(同样的文档似乎可以在这里下载- 上面的示例(和更多描述)来自"任务和基于事件的异步模式(EAP)")
| 归档时间: |
|
| 查看次数: |
3659 次 |
| 最近记录: |