bovender framework
C# framework that implements MVVM and more
ProcessModelForTesting.cs
1 /* ProcessModelForTesting.cs
2  * part of Bovender framework
3  *
4  * Copyright 2014-2018 Daniel Kraus
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 using System;
19 using System.Collections.Generic;
20 using System.Linq;
21 using System.Text;
22 using Bovender.Mvvm.Models;
23 
24 namespace Bovender.UnitTests.Mvvm
25 {
27  {
28  public long Duration { get; private set; }
29 
30  public override bool Execute()
31  {
32  var watch = System.Diagnostics.Stopwatch.StartNew();
33  for (int i = 0; i < 40000; i++)
34  {
35  int n = i;
36  int f = n;
37  for (int j = 0; j < n; j++)
38  {
39  f *= j;
40  }
41  if (IsCancellationRequested) break;
42  }
43  watch.Stop();
44  Duration = watch.ElapsedMilliseconds;
45  Console.WriteLine(String.Format("Process took {0} ms", Duration));
46  return !IsCancellationRequested;
47  }
48  }
49 }
override bool Execute()
This method may be called by a ProcessViewModelBase-derived class in a worker task that wraps this me...
Abstract base class for models that perform a lengthy process asynchronously.
Definition: ProcessModel.cs:30