安全的文件访问方式
最近在學習SharpDevelop源代碼,看到一處訪問文件的很有美感的代碼,特此供大家一起分享:
public sealed class CallbackOnDispose : IDisposable{Action callback;public CallbackOnDispose(Action callback){if (callback == null)throw new ArgumentNullException("callback");this.callback = callback;}public void Dispose(){Action action = Interlocked.Exchange(ref callback, null);if (action != null) {action();#if DEBUGGC.SuppressFinalize(this);#endif}}#if DEBUG~CallbackOnDispose(){Debug.Fail("CallbackOnDispose was finalized without being disposed.");}#endif}此處定義一個實現IDisposable接口的回調方法的類。調用的時候如下:
using (LockPropertyFile()){using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
{ms.WriteTo(fs);}}
??
public static IDisposable LockPropertyFile(){Mutex mutex = new Mutex(false);mutex.WaitOne();return new CallbackOnDispose(delegate {mutex.ReleaseMutex();mutex.Close();});}?
?
轉載于:https://www.cnblogs.com/Johnnie/p/3768590.html
總結
- 上一篇: Swift简介
- 下一篇: Magento 头部的演示信息去除