Click here to Skip to main content
15,886,012 members
Articles / Desktop Programming / Windows Forms

Simple Asynchronous Background Task Processing with Progress Dialog (Silverlight Solution)

Rate me:
Please Sign up or sign in to vote.
4.91/5 (15 votes)
21 Apr 2010CPOL8 min read 49.3K   1.1K   46  
Small, generic, reusable infrastructure for running tasks asynchronously and displaying progress information.
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace AsyncOperation
{
    //This tasks gets a delegate that will be called on running.
    internal class DelegateTask<TP> : TaskBase<TP> where TP : DefaultProgressDlg, new()
    {
        private Action<TP> _taskRun;
        private bool _isCancellable;

        public DelegateTask(Action<TP> taskRun) : this(taskRun, false)
        {
        }

        public DelegateTask(Action<TP> taskRun, bool isCancellable)
        {
            _taskRun = taskRun;
            _isCancellable = isCancellable;
        }

        protected override bool IsCancellable
        {
            get { return _isCancellable; }
        }

        protected override void Run()
        {
            _taskRun(this.ProgressDialog);
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Ireland Ireland
.NET Developer.

Comments and Discussions