问题标签 [winrt-async]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
724 浏览

c# - 在 Windows 8 应用程序中从 Goodreads 获取访问令牌

我正在为 goodreads ( http://www.goodreads.com ) 开发一个 Windows 8 应用程序。我正在关注http://code.msdn.microsoft.com/windowsapps/Web-Authentication-d0485122/view/Discussions上的 Web 身份验证代理示例。我成功地获得了 oauth 令牌和 oauth 令牌秘密。

但我无法将其发回并从 goodreads 获取访问令牌。我正在尝试使用获取的 oauth 令牌和令牌 sectret 发送构造的 URL,如下面的代码中所述。我正在尝试使用我使用 OAuth 从 Goodreads API 收到的oauth 令牌获取访问令牌。

在给定的代码中,“GetResponse2”变量始终从异步数据发送方法设置为 null。我认为这是因为 URL 的构造,但我无法弄清楚它在 URL 中哪里出错了。希望可以有人帮帮我。

0 投票
1 回答
246 浏览

image - 从 WinRT 中的绝对路径动态设置 ImagePath

我正在尝试创建一个动态创建的 Grid 项目的 GridView,每个项目的背景设置如下:

如果 FilePath 是应该为每个 Grid 项目加载的文件的绝对路径,有没有办法可以将此值转换为 ImagePath 以便加载图像?

我正在使用文件选择器获取 FilePath。然后将该值保存到应用程序启动时加载的 ObservableCollection,并通过设置为 DataContext 来显示。

0 投票
2 回答
1436 浏览

login - 调用 LoginAsync 时出现 NullReferenceException

在我的 WinRT 应用程序中,我希望用户连接到他的 Hotmail 帐户以访问他的联系人。我使用Microsoft Live Connect SDK中的Hotmail API 。

为了建立连接,我使用了相同文档的代码示例

但是代码在方法LoginAsync中引发了 NullReferenceException 。这是堆栈跟踪:

我认为问题不是来自 authClient,因为在调用 LoginAsync 时它不为空。根据这篇文章,问题来自未初始化的资源字典。有谁知道这个问题,最终如何解决?

谢谢

编辑

要在 WinRT 应用程序中使用 Live Contect,您需要在Windows Store Dashboard中声明它,也许这是解决方案,我没有 Windows Store 帐户。

0 投票
2 回答
470 浏览

windows-8 - 应用内购买 Windows 8 恢复

我正在为 Windows 8 - Metro 开发,想知道在重新安装应用程序后如何恢复或恢复我的购买。

0 投票
1 回答
1407 浏览

c# - WebAuthenticationBroker.AuthenticateAsync 不工作

我正在构建一个 Windows 8 应用程序,并在应用程序启动时尝试从 Google 数据 API 获取令牌。我构建了一个函数来执行此操作,它具有以下代码:

OnLaunched()在调用之前,我在 App.xaml.cs 中调用该函数Window.Current.Activate()。我这样做的原因是因为我的MainViewModel.

奇怪的是:当我以正常方式(通过 Visual Studio)启动我的应用程序时,它会卡在启动画面上(启动画面会持续很长时间),但是当我在这一行上放置一个断点时:

一步一步通过它,我突然得到一个登录窗口,允许我登录并获取令牌,这意味着启动画面消失了,我可以使用我的应用程序。

当我从 App.xaml.cs 中删除调用并仅从 ViewModel 请求令牌时,我遇到了同样的问题:它仍然卡在 SplashScreen 上。当我确实从我的 App.xaml.cs 请求令牌但在Window.Current.Activate()调用后移动请求时,我也遇到了这个问题。但在这些情况下,登录后启动画面消失,但屏幕保持黑色。我没有看到我的应用程序。

Ps,这就是我从 App.xaml.cs 请求令牌的方式(OnLaunched标记为async):

OAuth2Service 只是一个有方法的对象GetToken()。这种方法只是做我上面描述的。

有谁知道为什么当我使用断点单步执行应用程序时它会起作用,但当我不单步执行它就启动它时却不行?

我已经隔离了问题并创建了一个仅包含此代码的 Github 项目。你可以在这里找到它:https ://github.com/Avalaxy/OAuth2WinRT/tree/master/App1 。有一个 app.xaml.cs 调用 OAuth2.GetToken()。

0 投票
3 回答
853 浏览

c# - 无法捕获的 WinRT 应用程序中引发的 WebException

这个问题真的很奇怪,并且已经避开了我的调试尝试。仅在 Surface 平板电脑上运行应用程序时才会发生。它不会出现在华硕平板电脑上或在 Visual Studio 中运行时。在飞行模式已打开的特定场景中,会引发我绝对无法捕捉到的 WebException。我什至不完全确定我的代码中的什么导致它发生,因为我的一些日志记录在代码中的某个点之后由于未知原因没有发生。我只能假设它是由 HttpWebRequest 引起的,因为抛出的异常类型似乎来自内部 .NET 组件。这是我能够获得的唯一调试信息。它来自 Windows 事件查看器:

我真的希望我有更多的调试信息可以提供,但是我已经尝试了所有我能想到的一切,到处都有大量的 try/catch 块并在大多数调用后记录——其中一些没有被执行。有没有人知道可能导致这种情况的原因?

编辑1:

根据跟踪,异常似乎是在这里的某个地方抛出的。几乎所有东西都包裹在一个 try/catch 块中,所以我看不出 WebException 是如何漏掉的。

编辑2:

我仍然没有找到可接受的解决方案。我目前正在事先检查连接类型,如果代码未连接到 WiFi、移动或以太网,则不允许代码继续运行,但这并没有捕捉到它连接到没有 Internet 连接的网络的情况。WinRT 没有检查互联网连接的解决方案,甚至我使用的方法也不友好(它只是传回一个数字-- http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp /thread/d8e76732-19d3-47b3-840f-70d87c75ce9f)。

0 投票
1 回答
1339 浏览

multithreading - 将 CreateThread 调用移植到 Win8/WinRT 应用程序

我需要从我的 C# Win8/WinRT 应用程序中调用 C++ 库。

该库是多线程的,并通过调用 Win32 API(WaitForSingleObject等)来管理线程。我能够找出所有这些调用的替代品(总是有一个...Ex可用于应用程序的版本,例如,如果您正在寻找它,请WaitForSingleObjectEx那里查看)。<synchapi.h>

但是有一个调用我无法弄清楚如何替换:它是对CreateThread函数的调用。没有等价物,所以看起来这样的线程创建现在必须通过新的 API。

但我还没有深入研究 WinRT 上的新线程模型。根据您的经验,移植此线程创建调用的正确方法是什么?唯一的限制是它是一个 C++ 库,我将其构建为“WinApp 的 C++ 库”项目。

加起来:

在我为我的应用程序链接的库中,线程是通过CreateThreadWin32 API call创建的。我需要将这些调用更改为什么才能在我的应用程序环境中运行?

0 投票
0 回答
80 浏览

c# - 测试异步工作的组件

我们有组件封装了异步逻辑。现在我的问题是,我该如何测试这个,因为我的断言的时间可以正常运行但太早了?

给它一个类似于全局 on-all-Thread's-wait 命令的东西?

你怎么做?

我使用 MS 测试,例如:

0 投票
0 回答
146 浏览

c# - WinRT中线程内的新线程

我正在线程池中执行某些功能。在这个线程中,将执行 linq 查询。这需要更多时间,因为在该查询中选择了我的类的集合还有一个 bool 属性来检查另外两个集合。

CheckIsActive 方法----

这可以优化吗?任何想法?

可以在新线程中使用新线程进行上述执行吗?

可以使用 Thread 或 await 作为返回类型方法吗?

0 投票
2 回答
254 浏览

c# - 异步方法中的错误

在 WinRT 应用程序中,我有一个带有一些图片的 FlipView myFlipView 和一个 Image myImage。在 myFlipView 的事件 SelectionChanged 上有以下方法:

总而言之,它在 myFlipView 中找到当前图像的 uri,并将该图像设置在 myImage 中,但在 ModifyPicture 中定义了一些修改。它在平板电脑上完美运行,但在带鼠标的计算机上出现一个错误。当我非常快地单击附加到 FlipView 的箭头时,myImage 会显示错误的图片。例如,如果在 myFlipView 我有 10 张图片(p1、p2、...、p10)并且当前选择了 p1,那么当我在 myImage 上更改为 p2 时,也会出现 p2。但是,当我有时在 FlipView 中快速单击时,例如 p9 和 myImage p8。我想这与方法被多次调用但我不知道如何解决它有关。提前感谢您的帮助:)