Uwp GetThumbnailsAsync内存问题

Uwp GetThumbnailsAsync内存问题,uwp,c++-winrt,Uwp,C++ Winrt,最小示例[C++/WinRT]: #包括“winrt/Windows.Storage.Streams.h” #包括“winrt/Windows.Media.Editing.h” 使用名称空间std::literals; 使用名称空间winrt; 使用名称空间Windows::Media::Edit; 使用名称空间Windows::Storage; int main() { init_公寓(); StorageFile=StorageFile::GetFileFromPathAsync(L“vid

最小示例[C++/WinRT]:

#包括“winrt/Windows.Storage.Streams.h”
#包括“winrt/Windows.Media.Editing.h”
使用名称空间std::literals;
使用名称空间winrt;
使用名称空间Windows::Media::Edit;
使用名称空间Windows::Storage;
int main()
{
init_公寓();
StorageFile=StorageFile::GetFileFromPathAsync(L“video.mp4”).get();
MediaClip clip=MediaClip::CreateFromFileAsync(file).get();
MediaComposition=MediaComposition();
composition.Clips().Append(clip);
while(true)
{
auto stream=composition.GetThumbnailAsync(0s,10,10,VideoFramePrecision::NearestFrame).get();
printf(“%lld\n”,stream.Size());
}
}
问题:当我运行此代码时,内存使用量迅速增加,最终程序失败。理想情况下,我假设如果得到一个操作的结果,该操作将停止消耗内存,但在本例中,
GetThumbnailAsync
将继续使用内存。关闭操作或关闭操作结果没有帮助。如何使
GetThumbnailAsync
操作在完成后释放所有分配的内存


平台:Microsoft Windows 10 Insider Preview(Build 17682)

相关代码似乎没有泄漏任何资源
GetThumbnailAsync(…).get()
返回一个从未分配的临时值,应该立即销毁。为了验证这一点,您能否单步完成代码,并确保这就是实际发生的情况?我认为应该在某个地方调用
IUnknown::Release
。检查是否实际返回0。@i可检测
GetThumbnailAsync(…).get()的结果。
是一个大小为10乘10的
ImageStream
,因此即使它没有立即销毁,也不能如此快速地增加内存消耗(代码在失败之前消耗10GB内存)。所以我假设在
GetThumbnailsAsync
中有一个内部的东西,它使用了大量内存,但不会被破坏。谢谢你的重做。你在哪部电影里看到这个?我在17713上测试了这个,没有发现内存泄漏。可能这已经被修复了。我的内部版本是17682。我可以安装17713,然后再试一次。我将Insider Build更新为17692,现在一切看起来都很好。我想这是在最近的补丁中修复的。