예제 #1
0
 private void Initialize()
 {
     width       = surface.Width;
     height      = surface.Height;
     backingfile = Path.GetTempFileName();
     state       = State.Memory;
 }
예제 #2
0
        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();
            }
        }
예제 #3
0
        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();
            }
        }
예제 #4
0
 public void Dispose()
 {
     File.Delete(backingfile);
     surface.Dispose();
     state = State.Disposed;
 }