- asyncprocess.zip
- AsyncProcess
- AsyncProcess
- AsyncOperation
- AsyncProcess.sln
- AsyncProcess.sln.cache
- AsyncProcess.suo
- SilverlightApplication1.Web
- SilverlightApplication1
|
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
{
public class AsyncController
{
//These use Custom Tasks..
public static void Queue(TaskBase task)
{
Queue(task, null, false);
}
public static void Queue(TaskBase task, Action<TaskBase> completionCallback)
{
Queue(task, completionCallback, false);
}
public static void Queue(TaskBase task, Action<TaskBase> completionCallback, bool wait)
{
//assign callback to task
task.CompletionCallback = completionCallback;
if (wait)
{
if (Deployment.Current.Dispatcher.CheckAccess())
throw new Exception("Wait can only be used when running on worker thread, as UI thread cannot be blocked.");
}
task.Start();
if (wait)
task.Wait();
}
//These use the shipped DelegateTask
public static void Queue<TP>(Action<TP> taskRun) where TP : DefaultProgressDlg, new()
{
Queue<TP>(taskRun, false);
}
public static void Queue<TP>(Action<TP> taskRun, bool isCancellable) where TP : DefaultProgressDlg, new()
{
DelegateTask<TP> task = new DelegateTask<TP>(taskRun, isCancellable);
task.Start();
}
//more to come...
}
}
|
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.