2012-03-20 95 views
0

有人可以给我一个如何在Windows 8 ASync编程中正确使用ContactPicker.PickSingleContactAsync()功能的例子,我试过下面的代码,我似乎不是能够检索结果,更不用说继续。 JavaScript的例子有点含糊,我不懂JavaScript代码。我在C#是新的异步编程以及ContactPicker.PickSingleContactAsync Windows 8 C#usage

ContactPicker cp = new ContactPicker(); 
ContactInformation ci; 
Task<ContactInformation> task = cp.PickSingleContactAsync() as Task<ContactInformation>; 
await task; 

如何进行,得到的结果为“词”?另外,如何确保我只能从电话号码中选择联系人?

+0

只是这可能工作 IAsyncOperation 任务= cp.PickSingleContactAsync(); – 2012-03-20 10:53:42

回答

0

试试这个:

ContactPicker cp = new ContactPicker(); 
ContactInformation ci = await cp.PickSingleContactAsync(); 

你不能as -cast的WinRT异步方法将导致Task<T>,因为他们(可能)不Task<T>。要么await它们直接(如上述),或使用StartAsTask扩展方法:

ContactPicker cp = new ContactPicker(); 
Task<ContactInformation> ciTask = cp.PickSingleContactAsync().StartAsTask(); 
ContactInformation ci = await ciTask;