/// <summary>
        /// <see cref="SingleDelegateWithStateNoFlowContextSwitchSupplier"/> constructor
        /// </summary>
        /// <param name="switchDel">Delegate that provides the ability to switch the context of execution</param>
        public SingleDelegateWithStateNoFlowContextSwitchSupplier(ContextSwitchWithStateNoFlowDelegate switchDel)
        {
            if (switchDel == null)
            {
                throw new ArgumentNullException(nameof(switchDel));
            }


            _switchDel = switchDel;
        }
        /// <summary>
        /// Конструктор SingleDelegateWithStateNoFlowContextSwitchSupplier
        /// </summary>
        /// <param name="switchDel">Делегат смены контекста</param>
        public SingleDelegateWithStateNoFlowContextSwitchSupplier(ContextSwitchWithStateNoFlowDelegate switchDel)
        {
            Contract.Requires(switchDel != null);

            _switchDel = switchDel;
        }