private void Initialize() { width = surface.Width; height = surface.Height; backingfile = Path.GetTempFileName(); state = State.Memory; }
public void ToMemory() { if (state == State.Memory) { return; } FileStream fs = new FileStream(backingfile, FileMode.Open, FileAccess.Read); try { BinaryFormatter bf = new BinaryFormatter(); surface = (Surface)bf.Deserialize(fs); state = State.Memory; } catch (ThreadAbortException) { } finally { fs.Close(); } }
public void ToDisk() { if (state == State.Disk) { return; } FileStream fs = new FileStream(backingfile, FileMode.Create); try { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fs, surface); state = State.Disk; } catch (ThreadAbortException) { } finally { fs.Close(); surface.Dispose(); } }
public void Dispose() { File.Delete(backingfile); surface.Dispose(); state = State.Disposed; }