访问异步返回的WinRT组件时WinJS中的内存泄漏

时间:2013-02-21 22:52:41

标签: c# javascript windows-runtime winjs

我一直在阅读文档和各种示例,我的所有代码似乎都应该是这样。

然而,我遇到了一个我似乎无法插入的内存泄漏。这就是我所知道的:

  • 调用IAsyncOperation方法并且实际将.done.then附加到WinJS.Promise时会发生这种情况。
  • 泄漏对象似乎包含Windows.Foundation.IAsyncOperation<T>AsyncOpPromise(第一次调用异步方法时动态创建?)和最重要的,结果为操作(T)可以是一个非常大的对象。
  • 我可以看到JavaScript内存分析器中的明显泄漏,无论结果是数字,字符串还是任何其他对象类型。

例如:

//This one leaks
document.getImageSourceAsync().done(function(source) {
    //The intention is to do something with the image, but it doesn't really matter what does or does not happen here.
});

//This one doesn't leak
document.getImageSourceAsync();

我在这里创建了一个示例项目:http://sdrv.ms/12TvPOa


提前感谢您的帮助。 亚当

0 个答案:

没有答案