Windows phone 8 中调用 IAP 函数时无效的跨线程访问
invalid cross-thread access When calling IAP function in Windows phone 8
我正在使用适用于 Windows Phone 8.0 的 Cordova 插件集成 In App Purchase
我在插件中添加了一个名为 PurchaseProduct 的函数,它将在 JS Cordova 项目中调用。
namespace WPCordovaClassLib.Cordova.Commands
{
...............
public async void PurchaseProduct(string options)
{
string productId = JSON.JsonHelper.Deserialize<string[]>(options)[0];
......
try
{
await CurrentApp.RequestProductPurchaseAsync(productId, false);
........
}
............
在线下调用效果很好。
上市=等待Store.CurrentApp.LoadListingInformationAsync();
但是当我打电话的时候
等待CurrentApp.RequestProductPurchaseAsync(productId, false);
异常发生如下。
无效的跨线程访问
我不知道现在发生了什么。
有人可以帮助我吗?
对不起。
我已经修复了这个荒谬的问题。
使用 async 关键字。
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
functionA();
});
.....
public async void functionA(string options)
{
.....
await CurrentApp.RequestProductPurchaseAsync(productId, false);
.....
}
我正在使用适用于 Windows Phone 8.0 的 Cordova 插件集成 In App Purchase 我在插件中添加了一个名为 PurchaseProduct 的函数,它将在 JS Cordova 项目中调用。
namespace WPCordovaClassLib.Cordova.Commands
{
...............
public async void PurchaseProduct(string options)
{
string productId = JSON.JsonHelper.Deserialize<string[]>(options)[0];
......
try
{
await CurrentApp.RequestProductPurchaseAsync(productId, false);
........
}
............
在线下调用效果很好。 上市=等待Store.CurrentApp.LoadListingInformationAsync();
但是当我打电话的时候 等待CurrentApp.RequestProductPurchaseAsync(productId, false); 异常发生如下。
无效的跨线程访问
我不知道现在发生了什么。
有人可以帮助我吗?
对不起。 我已经修复了这个荒谬的问题。
使用 async 关键字。
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
functionA();
});
.....
public async void functionA(string options)
{
.....
await CurrentApp.RequestProductPurchaseAsync(productId, false);
.....
}