public void StopActivity() { int tId = Thread.CurrentThread.ManagedThreadId; ClientActivity activity = null; lock (_currentActivities.SyncRoot) { activity = _currentActivities[tId] as ClientActivity; _currentActivities.Remove(tId); } if (activity != null) { activity.StopActivity(); lock (_activities.SyncRoot) { _activities.Add(activity); } } }