在Xamarin.Forms上加载内存图片

时间:2016-06-05 03:08:55

标签: c# xamarin.forms out-of-memory

我的应用需要加载相同图像一定次数。因此,我需要管理内存使用,因为经过几次迭代后,内存耗尽。我正在尝试使用垃圾收集器,但它不起作用。我在我的内容页面中这样做。

我的代码如下:

private async Task ExecuteTests(string imageResource) 
{

    // Do stuff

    for (int q = 0; q < NUMBER_OF_TESTS; q++) {

        // Do some work

        await LoadImageAsync (imageResource);

        // Do stuff

        if (q < NUMBER_OF_TESTS - 1) {
            stkImage.Children.Remove(mImageTested);
            mImageTested = null;
            GC.Collect ();
        }
    }
}

private async Task LoadImageAsync(string imageURI) 
{
    mImageTested = new Image { Aspect = Aspect.AspectFit };
    Task<ImageSource> result = Task<ImageSource>.Factory.StartNew(() => ImageSource.FromFile(imageURI));
    mImageTested.Source = await result;
    stkImage.Children.Add(mImageTested);
}

1 个答案:

答案 0 :(得分:2)

也许这可以帮助你管理记忆:

https://github.com/luberda-molinet/FFImageLoading