public void Execute() { if (Chunk != null) { lock (Chunk) { try { if (CausesChange) Content.Get().Changes.ChunkChanged(Chunk); Action(); } catch (Exception) {} } } else { try { Action(); } catch (Exception) { } } if (Signal != null) Signal.Set(); }