/// <summary>
 /// 添加线程调用项对象
 /// </summary>
 /// <param name="item">线程调用项对象</param>
 private void Add(InvokeItem item)
 {
     lock (FItems)
     {
         FItems.Enqueue(item);
     }
 }
        /// <summary>
        /// 更新调用
        /// </summary>
        /// <typeparam name="T">泛型对象</typeparam>
        /// <typeparam name="T1">泛型对象</typeparam>
        /// <typeparam name="T2">泛型对象</typeparam>
        /// <typeparam name="T3">泛型对象</typeparam>
        /// <typeparam name="T4">泛型对象</typeparam>
        /// <param name="eui">线程调用更新界面UI数据委托对象</param>
        /// <param name="t">泛型对象</param>
        /// <param name="t1">泛型对象</param>
        /// <param name="t2">泛型对象</param>
        /// <param name="t3">泛型对象</param>
        /// <param name="t4">泛型对象</param>
        public void Invoke <T, T1, T2, T3, T4>(UpdateUIInvokeEventHandler <T, T1, T2, T3, T4> eui, T t, T1 t1, T2 t2, T3 t3, T4 t4)
        {
            InvokeItem item = new InvokeItem();

            item.Functions  = eui;
            item.Parameters = new object[] { t, t1, t2, t3, t4 };
            Add(item);
        }
        /// <summary>
        /// 更新调用
        /// </summary>
        /// <typeparam name="T">泛型对象</typeparam>
        /// <typeparam name="T1">泛型对象</typeparam>
        /// <param name="eui">线程调用更新界面UI数据委托对象</param>
        /// <param name="t">泛型对象</param>
        /// <param name="t1">泛型对象</param>
        public void Invoke <T, T1>(UpdateUIInvokeEventHandler <T, T1> eui, T t, T1 t1)
        {
            InvokeItem item = new InvokeItem();

            item.Functions  = eui;
            item.Parameters = new object[] { t, t1 };
            Add(item);
        }
        /// <summary>
        /// 更新调用
        /// </summary>
        /// <param name="eui">线程调用更新界面UI数据委托对象</param>
        public void Invoke(UpdateUIInvokeEventHandler eui)
        {
            InvokeItem item = new InvokeItem();

            item.Functions  = eui;
            item.Parameters = new object[0];
            Add(item);
        }