Ejemplo n.º 1
0
        /// <summary>
        /// Загрузить значения параметра
        /// </summary>
        /// <param name="Identifier">Идентификатор параметра</param>
        /// <returns>В случае успеха массив значений параметра, в противном случае null</returns>
        public DataBaseParameterValue[] ReadParameterValues(Guid Identifier)
        {
            bool blocked = false;

            try
            {
                if (mutex.WaitOne(1000))
                {
                    blocked = true;
                    if (state == DataBaseState.Loaded || state == DataBaseState.Saving)
                    {
                        return(dataBase.GetParameterValues(Identifier));
                    }
                    else
                    {
                        throw new InvalidOperationException("База данных не загруженна");
                    }
                }
                else
                {
                    throw new TimeoutException();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                if (blocked)
                {
                    mutex.ReleaseMutex();
                }
            }
        }