Exemplo n.º 1
0
 public void TaskManager_WithCancellation_Test()
 {
    // create manager and add tasks
    var manager = new TaskManager();
    manager.Changed += (s, e) => ReportAction(e);
    manager.Add("task1", ct => Thread.Sleep(500), 100);
    manager.Add("task2", ct => Thread.Sleep(500), 50);
    // stagger start tasks
    manager.Start("task1");
    // schedule a cancellation in 2.5 to 5 seconds
    var cancelTask = Task.Factory.StartNew(() =>
    {
       var random = new Random();
       Thread.Sleep(random.Next(2500, 5000));
       manager.Cancel();
    });
    Thread.Sleep(2000);
    manager.Start("task2");
    Thread.Sleep(3000);
    // stop tasks
    manager.Stop();
    // wait for completion (only in unit tests)
    manager.Wait();
    // wait for completion of cancellation task
    cancelTask.Wait();
 }
Exemplo n.º 2
0
 public void TaskManager_Test()
 {
    // create manager and add tasks
    var manager = new TaskManager();
    manager.Changed += (s, e) => ReportAction(e);
    manager.Add("task1", ct => Thread.Sleep(500), 100);
    manager.Add("task2", ct => Thread.Sleep(500), 50);
    // stagger start tasks
    manager.Start("task1");
    Thread.Sleep(2000);
    manager.Start("task2");
    Thread.Sleep(3000);
    // stop tasks
    manager.Stop();
    // wait for completion (only in unit tests)
    manager.Wait();
 }
Exemplo n.º 3
0
        private void TestBatchPrint(List<LabelFormatDocument> allBarcodeLabels)
        {
            // Initialize a new TaskManager object.
            using (TaskManager btTaskManager = new TaskManager())
            {
                // Start a task engine.
                btTaskManager.Start(1);

                // Create a group task.
                GroupTask groupTask = new GroupTask();

                List<BarcodeEntity> barcode = BusinessLogic.GetBarcodeDetails(txtQuoteNumber.Text);

                if (barcode == null)
                {
                    Helper.ShowErrorMessageBox("No data found for printing barcode!");
                    return;
                }
                foreach (LabelFormatDocument currentLabel in allBarcodeLabels)
                {
                    groupTask.Add(new PrintLabelFormatTask(currentLabel));
                }
                // Add two printing tasks to the group task.
                //groupTask.Add(new PrintLabelFormatTask(@"C:\Format2.btw"));
                // Execute the tasks asynchronously for performance.
                btTaskManager.TaskQueue.QueueTask(groupTask);

                // Stop the task engine. // Ten second timeout gives tasks time to finish.
                btTaskManager.Stop(10000, true);
            }
        }