Exemplo n.º 1
0
            public void SetBackBufferImage(SavedImage image)
            {
                lock (SyncRoot)
                {
                    _backBuffer?.Dispose();
                    _backBuffer = image;
                    if (image == null)
                    {
                        return;
                    }

                    if (_nonUiRedrawQueued)
                    {
                        return;
                    }
                    _nonUiRedrawQueued = true;
                    Dispatcher.UIThread.Post(
                        () =>
                    {
                        lock (SyncRoot)
                        {
                            if (!_nonUiRedrawQueued)
                            {
                                return;
                            }
                            _nonUiRedrawQueued = false;
                        }
                        SetNeedsDisplayInRect(Frame);
                        Display();
                    }, DispatcherPriority.Render);
                }
            }
Exemplo n.º 2
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         _backBuffer?.Dispose();
         _backBuffer = null;
     }
     base.Dispose(disposing);
 }