static void Main(string[] args) { var captain = new SamurayCaptain(); MemoryLeakVersion(captain); //FixedVersion(captain); }
private static void MemoryLeakVersion(SamurayCaptain captain) { for (int i = 0; i < 20000; i++) { var s = new Samuray(captain, "Samuray_" + i); } }
private static void FixedVersion(SamurayCaptain captain) { for (int i = 0; i < 20000; i++) { using (var s = new Samuray(captain, "Samuray_" + i)) { } } }
public Samuray(SamurayCaptain samurayCaptain, string name) { samurayCaptain.CommandGived += OnCommandGived; this.samurayCaptain = samurayCaptain; this.name = name; }