public void Change(ThreadLoad threadLoad, BalancedThread newBalancedThread) { if (!this.jobProcessor.IsInThread()) { this.jobProcessor.Enqueue(Job.Create <ThreadLoad, BalancedThread>(new Action <ThreadLoad, BalancedThread>(this.Change), threadLoad, newBalancedThread)); return; } if (threadLoad.Parent != this) { return; } this.Remove(threadLoad); newBalancedThread.Add(threadLoad); }