如何在c#中访问UI线程
本文关键字:访问 UI 线程 | 更新日期: 2023-09-27 18:05:14
我正在尝试访问windows phone 8的c# UI线程。到目前为止,我得到了这个。然而,一旦运行SmartDispatcher
,它就会跳转到receipt == null
。
我得到了SmartDispatcher类从这个网站(http://www.jeff.wilcox.name/2010/04/propertychangedbase-crossthread/)。我想知道其他人是否有这个问题以及如何解决它。
private async void purchaseProduct()
{
try{
li = await Store.CurrentApp.LoadListingInformationAsync();
SmartDispatcher.BeginInvoke(async delegate()
{
receipt = await Store.CurrentApp.RequestProductPurchaseAsync(package_id, true);
});
}
catch
{
DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR));
}
finally
{
if(receipt != null)
{
parseXML(package_id);
prepData();
httpPostData();
Store.CurrentApp.ReportProductFulfillment(package_id);
}
}
}
当然,它会立即跳转到那里,因为您正在开始一个异步操作,它不会阻塞,而是立即返回。
看,如果对象包含方法Invoke
而不是BeginInvoke
。Invoke
将阻塞,直到操作完成。