Example #1
0
        private void CallBack(IAsyncResult iar)
        {
            DeleCustInfoByPTID dele = ((System.Runtime.Remoting.Messaging.AsyncResult)iar).AsyncDelegate as DeleCustInfoByPTID;

            if (dele != null)
            {
                lock (dic_CustInfo)
                {
                    actualCount += 1;
                    string[] custInfo = dele.EndInvoke(iar);

                    dic_CustInfo.Add(custInfo[0], custInfo);
                }
            }
        }
Example #2
0
        /// <summary>
        /// 将CustInfo的信息拼接到所要导出的DataTable中
        /// </summary>
        /// <param name="TTName"></param>
        /// <param name="custIDColumnName"></param>
        /// <param name="projectID"></param>
        /// <param name="DbdataDt"></param>
        private void GetTogetherCustInfo(string custIDColumnName, int projectID, DataTable DbdataDt)
        {
            DataTable dt_CustInfo   = BLL.ProjectInfo.Instance.GetExportCustInfoByTempt(custIDColumnName, projectID.ToString());
            int       custInfoCount = DbdataDt.Rows.Count;

            for (int i = 0; i < custInfoCount; i++)
            {
                string PTID = DbdataDt.Rows[i]["任务ID"].ToString();

                DataRow[] dt_custInfoByPTID = dt_CustInfo.Select("  ptid='" + PTID + "'");
                if (dt_custInfoByPTID.Length == 1)
                {
                    exportCount += 1;

                    DeleCustInfoByPTID deleGetCustInfo = new DeleCustInfoByPTID(GetCustInfoDataRow);

                    deleGetCustInfo.BeginInvoke(PTID, dt_custInfoByPTID[0], CallBack, null);
                }
            }

            while (actualCount != exportCount)
            {
                System.Threading.Thread.Sleep(500);
            }

            for (int p = 0; p < custInfoCount; p++)
            {
                string PTID = DbdataDt.Rows[p]["任务ID"].ToString();

                if (dic_CustInfo.ContainsKey(PTID))
                {
                    string[] array_CustDatas = dic_CustInfo[PTID];
                    for (int k = 0; k < array_CustColumns.Length; k++)
                    {
                        DbdataDt.Rows[p][array_CustColumns[k]] = array_CustDatas[k + 1];
                    }
                }
            }
        }