BaconographyWP8.Common.RedditViewPivotControl.RealUnloadingItem C# (CSharp) Метод

RealUnloadingItem() приватный Метод

private RealUnloadingItem ( PivotItemEventArgs e ) : Task
e PivotItemEventArgs
Результат Task
        private async Task RealUnloadingItem(PivotItemEventArgs e)
        {
            using (_suspendableWorkQueue.HighValueOperationToken)
            {
                if (e.Item == null)
                    return;

                if (e.Item.DataContext is ViewModelBase)
                    _viewModelContextService.PopViewModelContext(e.Item.DataContext as ViewModelBase);

                //if we didnt finish loading we dont need to make a new writable bitmap
                if (!(e.Item.Content is Image) && e.Item.Content is UIElement)
                {
                    if (e.Item.Content is RedditView)
                    {
                        await Task.Delay(500);
                        if (inflightLoad == e.Item)
                            return;
                        ((RedditView)e.Item.Content).UnloadWithScroll();
                    }

                    await Task.Delay(500);
                    if (inflightLoad == e.Item)
                        return;
                    try
                    {
                        WriteableBitmap bitmap = new WriteableBitmap(e.Item.Content as UIElement, null);
                        bitmap.Invalidate();

                        await Task.Delay(250);
                        if (inflightLoad == e.Item)
                            return;
                        e.Item.Content = new Image { Source = bitmap };
                    }
                    catch
                    {
                        //sometimes we get a catestrophic error depending on how things were loaded and unloaded here
                        e.Item.Content = null;
                    }
                }
            }
        }