public override int CompareTo(object obj)
        {
            Task <TContext> item = obj as Task <TContext>;

            if (item == null)
            {
                return(-1);
            }
            int result = m_next_execution_time.CompareTo(item.m_next_execution_time);

            if (result != 0)
            {
                return(result);
            }
            else
            {
                return(_insertion_index - item._insertion_index);
            }
        }