public override void Update(CacheItemInfo oldInfo, CacheItemInfo newInfo) { if (oldInfo.Equals(newInfo)) return; var oldFilename = new FileItem(oldInfo).FileName; var newFilename = new FileItem(newInfo).FileName; PriorityQueue.AddStorageWorkItem(() => { lock (LockObject) { using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { if (store.FileExists(newFilename)) store.DeleteFile(newFilename); using (var readStream = new IsolatedStorageFileStream(oldFilename, FileMode.Open, store)) using (var writeStream = new IsolatedStorageFileStream(newFilename, FileMode.Create, store)) using (var reader = new StreamReader(readStream)) using (var writer = new StreamWriter(writeStream)) { writer.Write(reader.ReadToEnd()); } store.DeleteFile(oldFilename); } } }); }