/// <summary>
        /// Deletes the values at specific times for a for a set of items.
        /// </summary>
        public TsCHdaResultCollection[] DeleteAtTime(TsCHdaItem[] items)
        {
            TsCHdaItemTimeCollection[] times = new TsCHdaItemTimeCollection[items.Length];

            for (int ii = 0; ii < items.Length; ii++)
            {
                times[ii] = (TsCHdaItemTimeCollection)Timestamps.Clone();

                times[ii].ItemName     = items[ii].ItemName;
                times[ii].ItemPath     = items[ii].ItemPath;
                times[ii].ClientHandle = items[ii].ClientHandle;
                times[ii].ServerHandle = items[ii].ServerHandle;
            }

            return(_server.DeleteAtTime(times));
        }
        /// <summary>
        /// Starts an asynchronous delete values at specific times request for a set of items.
        /// </summary>
        public OpcItemResult[] DeleteAtTime(
            TsCHdaItem[] items,
            object requestHandle,
            TsCHdaUpdateCompleteEventHandler callback,
            out IOpcRequest request)
        {
            TsCHdaItemTimeCollection[] times = new TsCHdaItemTimeCollection[items.Length];

            for (int ii = 0; ii < items.Length; ii++)
            {
                times[ii] = (TsCHdaItemTimeCollection)Timestamps.Clone();

                times[ii].ItemName     = items[ii].ItemName;
                times[ii].ItemPath     = items[ii].ItemPath;
                times[ii].ClientHandle = items[ii].ClientHandle;
                times[ii].ServerHandle = items[ii].ServerHandle;
            }

            return(_server.DeleteAtTime(times, requestHandle, callback, out request));
        }