C\#의 System.Timers.Timer 타이머 사용 및 정시 자동 메모리 청소

프로젝트 가 비교적 크 고 가끔 카드 가 걸 릴 때 가 있 습 니 다.GC 자동 청소 체제 가 있 지만 만 족 스 럽 지 못 한 부분 이 있 습 니 다.그래서 프로젝트 시작 파일 에 타이머 하 나 를 수 동 으로 써 서 시간 에 맞 춰 메모 리 를 정리 하고 프로젝트 의 운행 속 도 를 가속 화 하려 고 합 니 다.

public class Program
  {
    [DllImport("psapi.dll")]
    static extern int EmptyWorkingSet(IntPtr hwProc); //      
   static void Main()
    {
      //        
      SetTimer();
    }
       /// <summary>
    ///       
    /// </summary>
    private static void SetTimer()
    {
      System.Timers.Timer aTimer = new System.Timers.Timer(); //      
      aTimer.Interval = 60000;//    1  
      aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
      aTimer.AutoReset = true;//      Elapsed         
      aTimer.Enabled = true; //   Timer       Elapsed   。
    }
//          
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
    {
      //    
      GC.Collect();
      GC.WaitForPendingFinalizers();
      Process[] processes = Process.GetProcesses();
      foreach (Process process in processes)
      {
        //          ,    ,        。 
        if ((process.ProcessName == "System") && (process.ProcessName == "Idle"))
          continue;
        try
        {
          EmptyWorkingSet(process.Handle);
        }
        catch
        {
        }
      }
    }
}
위 에서 말 한 것 은 편집장 이 소개 한 C\#의 System.Timers.Timer 타이머 의 사용 과 정시 에 자동 으로 메모리 애플 리 케 이 션 을 청소 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기