C#학습노트-진행편

7475 단어 프로세스
C# 프로세스
프로세스와 라인은 분리할 수 없으며, 본고는 주로 프로세스를 묘사한다.
1. 간단한 설명:
프로세스:
  • 프로세스는 운영체제 단계의 기본 개념으로 이를 간단하게'실행 중인 프로그램'으로 이해할 수 있다. 예: 1.qq 프로그램 VS 실행 중인 qq 프로세스;2. 기차 VS 지나가는 기차
  • 프로세스는 자원 스케줄링과 분배의 기본 단위이다.
  • 프로세스는 서로 독립적이다.
  • 운영 체제 수준의 관리에서 Process 클래스를 이용하여 본체 또는 원격 프로세스를 시작하거나 정지할 수 있다.

  • 프로세스와 스레드의 관계:
    한 작업장은 하나의 프로세스에 해당하고, 작업장 안의 노동자는 노정에 해당한다.
    2. 프로세스 관리(Process 클래스)
    1. Process 클래스는 System에 있습니다.Diagnostics 네임스페이스 아래에 있습니다.
    2. 로컬 컴퓨터에 대한 작업:
  • 어떤 프로세스를 시작하고 중지할 수 있다.
  • CPU 사용률 등 프로세스 관련 정보를 볼 수 있다.
  • 프로세스 작업 상태를 볼 수 있습니다.

  • 3. 원격 컴퓨터에 대한 조작:
  • 원격 컴퓨터 관련 정보를 볼 수 있다.
  • 원격 컴퓨터를 직접 시작하고 종료할 수 없음;

  • 4. 프로그램 및 프로그램:
    한 프로그램에서 다른 프로그램(예를 들어 다른.exe 파일 호출, 단축키 등)을 처리하는 것은 사실상 프로세스를 관리하는 것이다.
    3. 프로세스 프레젠테이션:
    (1) 프로세스를 시작합니다.
    예:
    1. 예: ① Process 어셈블리의 인스턴스를 생성합니다. 예를 들면 다음과 같습니다.
    Process myProcess = new Process();
    

    ② 실행할 애플리케이션 이름과 전달할 매개 변수를 지정합니다.
     myProcess.StartInfo.FileName = "   ";
     myProcess.StartInfo.Arguments = "  ";
     myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
    

    ③ 인스턴스의 Start 메서드를 사용하여 프로세스를 시작합니다.
    myProcess.Start();
    

    2. 예: ① 프로세스를 직접 시작합니다.
    Process.Start(“Notpad.exe”);
    

    프로세스를 시작하는 방법 및 속성:
    Start 방법: 프로세스 자원을 시작하고 Process 구성 요소와 연결하는 StartInfo 속성: 시작 프로세스에 전달할 파일 이름과 시작 파라미터를 가져오거나 설정합니다.
    프로세스를 시작하는 두 가지 방법:
  • Process 클래스의 실례를 만들고 StartInfo 속성을 통해 실행할 프로그램의 이름과 전달할 파라미터를 지정한 다음 이 실례의 Start 방법을 호출하여 이 프로세스를 시작합니다.

  • 프로세스에 그래픽 사용자 인터페이스가 있는 경우 ProcessWindowsStyle을 사용하여 프로세스를 시작할 때 창을 표시하는 방법을 일일이 지정할 수 있습니다.선택할 수 있는 열거 값은 Normal (정상 창), Hidden (숨겨진 창), Minimized (최소화 창), Maximized (최대 창) 이다.
  • Process 클래스에서 제공하는 Start 정적 메소드를 직접 호출하여 프로세스를 시작합니다.

  • (2) 프로세스를 중지하려면 다음과 같이 하십시오.
    프로세스를 중지하는 두 가지 방법:
    CloseMainWindow + Close(리소스 방출): 그래픽 인터페이스가 있는 Kill + WaitForExit(종료 대기): 모든 프로그램
    선택 방법:
    CloseMainWindow
    Kill
    이미지 인터페이스의 선례후병 먼저 Close Main Window 하고 Kill
    GUI 없이 Kill 메소드 사용
    예외 처리:
    프로세스가 종료되는 동시에 Kill 방법을 호출하면 이상이 발생할 수 있으므로, 호출할 때try/catch 문장을 사용하는 것이 좋습니다.
    Process 클래스에서 제공하는 관련 방법 및 속성:
    메서드/속성
    해석하다
    Kill 방법 및 CloseMainWindow 방법
    전자는 프로세스를 강제로 종료하는 데 사용되고, 후자는 프로세스를 종료하는 것을 요청하는 데 사용됩니다.
    HasExited 속성
    HasExited 등록 정보는 시작한 프로세스가 중지되었는지 여부를 판단하는 데 사용됩니다.
    WaitForInputIdle 메서드
    사용자 인터페이스가 있는 프로세스에만 적용되며 Process는 연관된 프로세스가 유휴 상태가 될 때까지 기다릴 수 있습니다.
    WaitForExit 메서드
    연관 프로세스가 종료될 때까지 기다리는 시간 설정
    ExitCode 속성
    ExitCode 등록 정보는 연관 프로세스가 종료될 때 지정된 값을 가져오는 데 사용됩니다.
    ExitTime 속성
    ExitTime 속성은 연관된 프로세스가 종료되는 시간을 가져오는 데 사용됩니다.
    EnableRaisingEvents 속성
    EnableRaisingEvents 속성은 프로세스가 종료될 때 Exited 이벤트를 발생시킬지 여부를 가져오거나 설정하는 데 사용됩니다.
    (3) 모든 프로세스 정보를 가져오는 방법:
    프로세스를 가져오는 방법:
    1. 모든 프로세스 정보 얻기
    Process 클래스의 GetProcesses 정적 방법은 새 Process 배열을 만들고 이 배열을 로컬 컴퓨터의 모든 프로세스 자원과 연결하는 데 사용됩니다.
    ① 로컬 컴퓨터의 모든 프로세스를 가져오는 경우:
    Process[] myProcesses = Process.GetProcesses();
    

    ② 원격 컴퓨터의 모든 프로세스를 가져오는 방법:
    Process[] myProcesses =Process.GetProcesses (remoteMachineName);   
    //  :
    Process[] myProcesses =Process.GetProcesses ("192.168.0.1");
    

    2. 지정된 프로세스 정보를 얻으려면 다음과 같이 하십시오.
    Process의 GetProcessById 정적 방법은 자동으로 Process 대상을 만들고 이를 로컬 컴퓨터의 프로세스와 연결하며 프로세스 Id를 이 Process 대상에게 전달합니다.GetProcessesByName 정적 메서드는 연관된 모든 프로세스를 포함하는 배열을 반환합니다.
    ① 로컬 컴퓨터와 관련된 프로세스를 가져오는 경우:
    Process  p = Process.GetProcessesById(5152);
    

    ② 로컬 컴퓨터에서 지정된 이름을 가져오는 프로세스:
     Process[] myProcesses = Process.GetProcessesByName("    ");
    

    ③ 원격 컴퓨터에서 지정한 이름을 가져오는 프로세스:
    Process[] myProcesses = Process.GetProcessesByName("      ",remoteMachineName);
    

    (1) 프로세스 이름에 확장자가 없습니다.(2) 실행 파일일 수 있음
    Process 클래스의 관련 속성:
    Process 클래스의 프로세스 정보 속성
    해석하다
    MachineName 속성
    관련 프로세스가 실행 중인 컴퓨터 이름 가져오기
    MainModule 속성
    관련 프로세스의 주 모듈 가져오기
    Modules 속성
    관련 프로세스에서 불러오는 모듈 가져오기
    TotalProcessorTime 속성
    프로세스의 전체 프로세서 시간 가져오기
    StartTime 속성
    관련 프로세스의 시작 시간 가져오기
    WorkingSet64 속성
    프로세스에 할당된 물리적 메모리(바이트)

    좋은 웹페이지 즐겨찾기