示例#1
0
        //Task t1 = Task.Factory.StartNew(() => NprintingReqResRepository.TasksExecution("1"));
        //Task t2 = Task.Factory.StartNew(() => NprintingReqResRepository.TasksExecution("1"));

        //  var result = t1.Result.Concat(t2.Result);



        public async Task RunTasks()
        {
            IsAdhoc = false;
            DataTable taskExecutionDetails = null;
            var       tasks = new List <Task>();

            try
            {
                taskExecutionDetails = new DataTable();
                taskExecutionDetails = GetTaskExecutionDetails();
                if (taskExecutionDetails != null && taskExecutionDetails.Rows.Count > 0)
                {
                    foreach (DataRow dr in taskExecutionDetails.Rows)
                    {
                        string TaskID = dr["NprintingTaskID"].ToString();
                        // NprintingReqResRepository.TasksExecution(TaskID);
                        tasks.Add(Task.Run(() => NprintingReqResRepository.TasksExecution(TaskID, 1)));
                    }
                    //Parallel.For(0, taskExecutionDetails.Rows.Count,
                    // async i =>
                    // {
                    //     await NprintingReqResRepository.TasksExecution(taskExecutionDetails.Rows[i]["NprintingTaskID"].ToString());
                    // });

                    await Task.WhenAll(tasks);
                }



                //  var tasks = new List<Task>
                //{
                // new Task(async () => await DoWork()),
                // //and so on with the other 9 similar tasks
                //}


                Parallel.ForEach(tasks, task =>
                {
                    task.Start();
                });

                Task.WhenAll(tasks).ContinueWith(done =>
                {
                    //Run the other tasks
                    Console.WriteLine(tasks);
                });
            }
            catch (Exception ex)
            {
                LoggerHelper.ExcpLogger("Window Service Program", "ExecuteNprintingTask", ex);
            }
        }
示例#2
0
        //public async Task DoWork()
        //{
        //    var results = await NprintingReqResRepository.TasksExecution("1");
        //    foreach (var result in results)
        //    {
        //        await ReadFromNetwork(result.Url);
        //    }
        //}

        //}


        /// <summary>
        /// Get the Task details from database
        /// </summary>
        static void ExecuteNprintingTaskAdhoc()
        {
            IsAdhoc = true;
            DataTable taskExecutionDetails = null;

            try
            {
                taskExecutionDetails = new DataTable();
                taskExecutionDetails = GetAdhocTaskExecutionDetails();
                if (taskExecutionDetails != null && taskExecutionDetails.Rows.Count > 0)
                {
                    foreach (DataRow dr in taskExecutionDetails.Rows)
                    {
                        string TaskID = dr["NprintingTaskID"].ToString();
                        NprintingReqResRepository.TasksExecution(TaskID, 1);
                    }
                }
            }
            catch (Exception ex)
            {
                LoggerHelper.ExcpLogger("Window Service Program", "ExecuteNprintingTask", ex);
            }
        }
示例#3
0
        /// <summary>
        /// Set autentication in Nprinting and Get the Task details from database.
        /// </summary>
        // public async Task ExecuteNprintingTask()
        static void ExecuteNprintingTask()
        {
            IsAdhoc = false;
            DataTable taskExecutionDetails = null;
            DataTable distinctReprots      = null;

            try
            {
                taskExecutionDetails = new DataTable();
                taskExecutionDetails = GetTaskExecutionDetails();


                if (taskExecutionDetails != null && taskExecutionDetails.Rows.Count > 0)
                {
                    //  var dtUniqueReportList = taskExecutionDetails.AsEnumerable()
                    //.Select(row => new
                    //{
                    //    ReportID = row.Field<Int32>("ReportID"),

                    //})
                    //.Distinct();
                    //  dtUniqueReportList.ToArray();

                    //var tasks = new List<Task>();
                    var listOfActions = new List <Action>();
                    distinctReprots = taskExecutionDetails.AsEnumerable()
                                      .GroupBy(row => new
                    {
                        ReportID = row.Field <Int32>("ReportID"),
                    })
                                      .Select(group => group.First())
                                      .CopyToDataTable();

                    NprintingReqResRepository obj = new NprintingReqResRepository();
                    obj.InsertLog("start", "start", DateTime.Now);

                    #region Parallel

                    foreach (DataRow dr in distinctReprots.Rows)
                    {
                        string TaskID   = dr["NprintingTaskID"].ToString();
                        Int32  ReportID = Convert.ToInt32(dr["ReportID"]);

                        listOfActions.Add(() => NprintingReqResRepository.excuteReportBunch(taskExecutionDetails, ReportID));
                    }

                    Parallel.Invoke(listOfActions.ToArray());
                    #endregion


                    #region sequential

                    //foreach (DataRow dr in taskExecutionDetails.Rows)
                    //{
                    //    string TaskID = dr["NprintingTaskID"].ToString();
                    //    Int32 ReportID = Convert.ToInt32(dr["ReportID"]);

                    //    NprintingReqResRepository.TasksExecution(TaskID, ReportID);
                    //}

                    #endregion
                }
            }
            catch (Exception ex)
            {
                LoggerHelper.ExcpLogger("Window Service Program", "ExecuteNprintingTask", ex);
            }
        }