public virtual void BeginPurge(int rootId) { workQueue.Enqueue(new Work { Task = () => { var item = persister.Get(rootId); if (item == null) { return; } string title = item.Title; Status = new AsyncPurgeStatus { IsRunning = true, Progress = new PurgingStatus { Deleted = 0, Remaining = 1 }, Title = title }; using (this.security.Disable()) { trash.Purge(item, s => { Status = new AsyncPurgeStatus { IsRunning = true, Progress = s, Title = title }; }); } Status = null; } }); BeginWorking(); }