public static void Remove(Timer timer) { LinkedListNode<Timer> curNode = timerList_.First; while (curNode != null) { LinkedListNode<Timer> next = curNode.Next; if (curNode.Value != timer) { curNode = next; continue; } timerList_.Remove(curNode); if (timer.onRemoved_ != null) { timer.onRemoved_(timer); } break; } }