diff --git a/Remotely_ScreenCast.Core/Capture/ImageUtils.cs b/Remotely_ScreenCast.Core/Capture/ImageUtils.cs index a9478712..09ea8551 100644 --- a/Remotely_ScreenCast.Core/Capture/ImageUtils.cs +++ b/Remotely_ScreenCast.Core/Capture/ImageUtils.cs @@ -119,14 +119,8 @@ namespace Remotely_ScreenCast.Core.Capture } finally { - try - { - currentFrame.UnlockBits(bd1); - previousFrame.UnlockBits(bd2); - bd1 = null; - bd2 = null; - } - catch { } + currentFrame.UnlockBits(bd1); + previousFrame.UnlockBits(bd2); } } diff --git a/Remotely_ScreenCast.Core/Capture/ScreenCaster.cs b/Remotely_ScreenCast.Core/Capture/ScreenCaster.cs index 978f2fbf..2991f5b8 100644 --- a/Remotely_ScreenCast.Core/Capture/ScreenCaster.cs +++ b/Remotely_ScreenCast.Core/Capture/ScreenCaster.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; @@ -103,15 +104,18 @@ namespace Remotely_ScreenCast.Core.Capture await conductor.CasterSocket.SendScreenCapture(encodedImageBytes, viewerID, diffArea.Left, diffArea.Top, diffArea.Width, diffArea.Height, DateTime.UtcNow); viewer.PendingFrames++; } - // TODO: Even after disposing of the bitmap, GC doesn't collect in time. Memory usage soars quickly. - // Need to revisit this later. - GC.Collect(); } } catch (Exception ex) { Logger.Write(ex); } + finally + { + // TODO: Even after disposing of the bitmap, GC doesn't collect in time. Memory usage soars quickly. + // Need to revisit this later. + GC.Collect(); + } } Logger.Write($"Ended screen cast. Requester: {requesterName}. Viewer ID: {viewerID}."); success = false;