public override object[] GetStates() { lock (_lock) { object[] states = new object[_workItemsQueue.Count]; int i = 0; foreach (WorkItem workItem in _workItemsQueue) { states[i] = workItem.GetWorkItemResult().State; ++i; } return states; } }