0

我在 WPF 应用程序中使用这个逻辑。我看到执行在 3 秒内完成(来自数据库),但由于某种原因,秒表打印出 17 秒或更长时间。

Parallel.For 块中的代码进行大量计算并写入数据库。所以在视觉上,我的意思是从数据库中选择查询。

Stopwatch stopwatch = new Stopwatch();

            // Begin timing
            stopwatch.Start();

            String currentTime = System.DateTime.Now.ToString();
            statusLabel.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background,
                 new Action(delegate() { statusLabel.Content = "New Minute data processing..." + currentTime; }));


            int size = NumSymWatching;


            Parallel.For(0, size, x =>
             {
               CalculateStudies(SymbolsToWatch[x], SymbolSessions[x]);
              });



            UpdateApplicationStatusTable();
            stopwatch.Stop();

            statusLabel.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background,
                 new Action(delegate() { lblTimer.Content = "Time taken to run: " + stopwatch.Elapsed; }));
            isRunning = false;

编辑 经过几次测试,我发现在 Parallel.For 循环周围使用秒表没有问题。

4

0 回答 0