示例#1
0
 public static void ExecuteAsyncJob(ImageShrinkerViewModel context, IBackgroundWorkerUi uiResponder, IAsyncJob job)
 {
     var backgroundWorker = new BackgroundWorker();
     backgroundWorker.DoWork += job.BackgroundWorkerOnDoWork;
     backgroundWorker.WorkerSupportsCancellation = true;
     backgroundWorker.RunWorkerCompleted += (s, e) =>
     {
         uiResponder.OnWorkerCompleted();
         AsyncJobRunning = false;
     };
     uiResponder.Worker = backgroundWorker;
     job.Prepare(context, uiResponder);
     AsyncJobRunning = true;
     backgroundWorker.RunWorkerAsync();
     uiResponder.AfterAsyncStart();
 }