コード例 #1
0
 public Task <int> Start()
 {
     return(Task <int> .Factory.StartNew(() =>
     {
         SampleUtilities.DoCpuIntensiveOperation(2.0);
         return 42;
     }));
 }
コード例 #2
0
 MarketRecommendation CompareModels(IEnumerable <MarketModel> models)
 {
     SampleUtilities.DoCpuIntensiveOperation(2.0 * speedFactor, cts.Token);
     if (cts.Token.IsCancellationRequested)
     {
         return(null);
     }
     else
     {
         return(ModelComparer.Run(models.ToArray()));
     }
 }
コード例 #3
0
 /// <summary>
 /// Normalize stock data.
 /// </summary>
 StockDataCollection NormalizeData(StockDataCollection marketData)
 {
     SampleUtilities.DoCpuIntensiveOperation(2.0 * speedFactor, cts.Token);
     if (cts.Token.IsCancellationRequested)
     {
         return(null);
     }
     else
     {
         return(new StockDataCollection(marketData));
     }
 }
コード例 #4
0
 MarketModel RunModel(StockAnalysisCollection data)
 {
     SampleUtilities.DoCpuIntensiveOperation(2.0 * speedFactor, cts.Token);
     if (cts.Token.IsCancellationRequested)
     {
         return(null);
     }
     else
     {
         return(MarketModeler.Run(data));
     }
 }
コード例 #5
0
ファイル: Program.cs プロジェクト: hszeng/GeneralSolution
 static void Chapter6Example01ParallelWhileNotEmpty2(Tree <string> tree)
 {
     for (int i = 0; i < N; i++)
     {
         ConcurrentBag <string> result = new ConcurrentBag <string>();
         Walk5(tree, (data) =>
         {
             SampleUtilities.DoCpuIntensiveOperation(Time);
             result.Add(data);
         });
     }
 }
コード例 #6
0
ファイル: Program.cs プロジェクト: hszeng/GeneralSolution
 static void Chapter6Example1Sequential(Tree <string> tree)
 {
     for (int i = 0; i < N; i++)
     {
         List <string> result = new List <string>();
         SequentialWalk(tree, (data) =>
         {
             SampleUtilities.DoCpuIntensiveOperation(Time);
             result.Add(data);
         });
     }
     Console.WriteLine();
 }
コード例 #7
0
        StockDataCollection MergeMarketData(IEnumerable <StockDataCollection> allMarketData)
        {
            SampleUtilities.DoCpuIntensiveOperation(2.0 * speedFactor, cts.Token);
            var securities = new List <StockData>();

            if (!cts.Token.IsCancellationRequested)
            {
                foreach (StockDataCollection md in allMarketData)
                {
                    securities.AddRange(md);
                }
            }

            if (cts.Token.IsCancellationRequested)
            {
                return(null);
            }
            else
            {
                return(new StockDataCollection(securities));
            }
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: hszeng/GeneralSolution
 /// <summary>
 /// A computationally intensive function
 /// </summary>
 static int F4(int value1, int value2)
 {
     SampleUtilities.DoCpuIntensiveOperation(0.1);
     return(value1 + value2);
 }
コード例 #9
0
ファイル: Program.cs プロジェクト: hszeng/GeneralSolution
 /// <summary>
 /// A computationally intensive function
 /// </summary>
 static int F3(int value)
 {
     SampleUtilities.DoCpuIntensiveOperation(1.0);
     return(value + 1);
 }
コード例 #10
0
ファイル: Program.cs プロジェクト: hszeng/GeneralSolution
 /// <summary>
 /// A computationally intensive function
 /// </summary>
 static int F1(int value)
 {
     SampleUtilities.DoCpuIntensiveOperation(2.0);
     return(value * value);
 }
コード例 #11
0
 static void SearchRight(CancellationToken token)
 {
     token.ThrowIfCancellationRequested();
     SampleUtilities.DoCpuIntensiveOperation(TaskSeconds * .3, token);
     token.ThrowIfCancellationRequested();
 }
コード例 #12
0
 static void DoCenter()
 {
     SampleUtilities.DoCpuIntensiveOperation(TaskSeconds * .2);
 }
コード例 #13
0
 static void DoRight()
 {
     SampleUtilities.DoCpuIntensiveOperation(TaskSeconds * .3);
 }
コード例 #14
0
 static void Stage4AdditionalWork()
 {
     SampleUtilities.DoCpuIntensiveOperation(StageTime[3]);
 }
コード例 #15
0
 static void Stage3AdditionalWork()
 {
     SampleUtilities.DoCpuIntensiveOperation(StageTime[2] / Phrases.Length);
 }