Fix: memory usage

This commit is contained in:
Sakurai Ryota 2024-06-01 20:40:56 +09:00
parent bee08f34e6
commit e8b7b8408c
3 changed files with 53 additions and 1 deletions

View File

@ -3,12 +3,14 @@ namespace PacketIO;
public class PacketFile : IPacketFile
{
private string fileName;
private TempFile? tempFile;
private Stream stream;
public PacketFile(string fileName)
{
this.fileName = fileName;
this.stream = new MemoryStream();
this.tempFile = new TempFile();
this.stream = tempFile.Open(FileMode.Open);
}
public PacketFile(string fileName, Stream stream)
@ -56,5 +58,9 @@ public class PacketFile : IPacketFile
public void Dispose()
{
this.stream.Dispose();
if (this.tempFile is object)
{
this.tempFile.Dispose();
}
}
}

View File

@ -0,0 +1,21 @@
namespace PacketIO;
public class TempFile : IDisposable
{
public string FileName { get; }
public TempFile()
{
FileName = Path.GetTempFileName();
}
public Stream Open(FileMode mode)
{
return new FileStream(FileName, mode);
}
public void Dispose()
{
File.Delete(FileName);
}
}

View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.002.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtocolLib", "ProtocolLib.csproj", "{BB1F2133-E83C-4975-A685-D2DCE2FC24C9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BB1F2133-E83C-4975-A685-D2DCE2FC24C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BB1F2133-E83C-4975-A685-D2DCE2FC24C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB1F2133-E83C-4975-A685-D2DCE2FC24C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BB1F2133-E83C-4975-A685-D2DCE2FC24C9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AD8CE391-A853-498C-A2E6-7A83701164D4}
EndGlobalSection
EndGlobal