C\#프로그램 실행 시간 이 길 고 조회 속도 가 느 린 해결 방안

첫째,프로그램의 실행 이 느 린 원인 은 바로 데이터 베 이 스 를 조회 하 는 것 이 느 리 고 반환 값 이 느 리 기 때 문 입 니 다.그러면 이것 은 어떻게 해결 해 야 합 니까?
1.데이터베이스 조 회 를 최적화 합 니 다.예 를 들 어 이 글C\#엑셀 로 데 이 터 를 내 보 내 는 방법
2.스 레 드 를 사용 하여 병렬 조 회 를 한 다음 에 집합 으로 합 칩 니 다.코드 는 다음 과 같 습 니 다.비고 의 핵심 점 에 유의 해 야 합 니 다.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

namespace TestConsoleApp
{
  /// <summary>
  ///C#     :         
  /// </summary>
  class Program
  {
    static void Main(string[] args)
    {
      List<Task> taskList = new List<Task>();
      int count = 100;
      int batch = count % 10;
      object lockObj = new object();
      List<int> list = new List<int>();

      ///        
      Stopwatch stopwatch = new Stopwatch();
      stopwatch.Start();
      for (int i = 0; i < batch; i++)
      {
        taskList.Add(Task.Run(() =>
        {
          for (int j = count * i; j < count * (i + 1); j++)
          {
            ///    ,            
            Thread.Sleep(100);
            ///    :        
            lock (lockObj)
            {
              list.Add(i);
            }
          }
        }));
      }
      ///              ,       
      Task.WaitAll(taskList.ToArray());
      ///         ,                      
      list = list.OrderByDescending(u => u).ToList();
      Console.WriteLine(stopwatch.ElapsedMilliseconds);


      Console.WriteLine("**********   ***********");

      ///      
      List<int> list2 = new List<int>();
      Stopwatch stopwatch2 = new Stopwatch();
      stopwatch2.Start();
      for (int i = 0; i < count; i++)
      {
        ///    ,            
        Thread.Sleep(100);
        list2.Add(i);
      }
      Console.WriteLine(stopwatch2.ElapsedMilliseconds);
      Console.ReadLine();
    }
  }
}
PS:핵심 점
1>스 레 드 대기 스 레 드 종료 작업.WaitAll
2>집합 을 잠 그 고 점용 을 삽입 하여 오 류 를 보고 하지 않도록 한다.
3>결 과 는 정렬 이 필요 합 니 다.병렬 스 레 드 의 결 과 는 무질서 하기 때 문 입 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기