temporary ugly fix for memory leak

This commit is contained in:
Paddy Xu
2018-01-25 02:18:02 +02:00
parent a17b7f05d7
commit 2af22cde92
3 changed files with 22 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
@@ -110,7 +111,27 @@ namespace QuickLook.Plugin.VideoViewer
try
{
CoverArt = null;
mediaElement?.Dispose();
if (mediaElement.IsOpening)
{
void DelayedDisposeEvent(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
{
var me = (Unosquare.FFME.MediaElement) sender;
if (propertyChangedEventArgs.PropertyName != nameof(me.IsPlaying))
return;
if (me.IsPlaying != true)
return;
me.PropertyChanged -= DelayedDisposeEvent;
me.IsMuted = true;
Task.Delay(200).ContinueWith(t => me.Dispose());
}
mediaElement.PropertyChanged += DelayedDisposeEvent;
}
else
mediaElement.Dispose();
mediaElement = null;
}
catch (Exception e)