public void SyncLocations(SyncCallback callback) { LocationCollection tmp = new LocationCollection(this); tmp.Resync(() => { System.Threading.Interlocked.Exchange(ref mLocations, tmp); callback(); }); }