mirror of
https://github.com/QL-Win/QuickLook.git
synced 2025-09-12 10:19:07 +00:00
temporary ugly fix for memory leak
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user