WinForm 프로 세 스,스 레 드 및 차이 점 에 대한 깊이 있 는 분석
프로 세 스 는 데이터 집합 에 대한 독립 적 인 기능 을 가 진 프로그램 입 니 다.
이 는 시스템 자원 을 신청 하고 소유 할 수 있 으 며 동태 적 인 개념 으로 활동 의 실체 이다.
프로 세 스 를 조작 하 는 데 사용 되 는 process 클래스 입 니 다.
네 임 스페이스:System.Diagnostics 를 사용 합 니 다.
Process.Start("calc"); //
Process.Start("mspaint"); //
Process.Start("iexplore" , "http://www.baidu.com"); //
(1)프로 세 스 를 통 해 지정 한 파일 을 엽 니 다.1.프로 세 스 대상 만 들 기
Process p = new Process();
2.StartInfo 대상 을 만 드 는 것 은 디스크 가 있 는 경 로 를 지정 하 는 것 입 니 다.
ProcessStartInfo psi = new ProcessStartInfo(@"C:\user\.....);
3.프로 세 스 지정 및 시작
p.StartInfo = psi; //
p.Start(); //
(2)파일 선택 상 자 를 통 해 사용자 가 열 어야 할 프로그램 을 선택 하고 열 수 있 도록 합 니 다.
private void button1_Click(object sender, EventArgs e)
{
//
openFileDialog1.Filter = " |*.exe";
//
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//
string path = openFileDialog1.FileName;
//
Process p = new Process();
//
ProcessStartInfo psf = new ProcessStartInfo(path);
//
p.StartInfo = psf;
//
p.Start();
}
}
예:로그아웃
// path exe
string path = Application.StartupPath;
// exe dll
string s = System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName;
private void button2_Click(object sender, EventArgs e)
{
//
//
//string path = Application.StartupPath;
string path = System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName;
//
Process p = new Process();
//
ProcessStartInfo ps = new ProcessStartInfo(path);
//
p.StartInfo = ps;
//
p.Start();
//
this.Close();
}
예:마우스 드래그 창 구현
private int x;
private int y;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
// XY
x = e.X;
y = e.Y;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
//
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
// = +
this.Left = this.Left+(e.X - x);
this.Top = this.Top +(e.Y - y);
}
}
스 레 드스 레 드 는 경량급 프로 세 스(Lightweight Process,LWP)라 고도 불 리 며 프로그램 실행 흐름 의 최소 단위 입 니 다.
차이:프로 세 스 는 독립 된 자원 이 있 고 스 레 드 공용 자원 이 있 습 니 다.
Thread 클래스,네 임 스페이스:System.Threading 사용 하기;
프로그램 은 기본적으로 하나의 메 인 스 레 드 만 있 고 복잡 한 처 리 를 하면 가사 상태 가 발생 합 니 다.하나의 스 레 드 가 동시에 한 가지 일 만 할 수 있 기 때 문 입 니 다.
다 중 스 레 드 의 역할:여러 가지 일 을 하 는 동시에 시간 을 절약 하고 배경 에서 프로그램 을 실행 하 며 프로그램의 운행 효율 을 향상 시 키 며 메 인 인터페이스 에 응답 이 없 는 상황 이 나타 나 지 않 습 니 다.
스 레 드 생 성:
새로운 스 레 드 를 열 어 어떤 함 수 를 실행 합 니까?
Thread th = new Thread( , );
이 스 레 드 가 준비 되 었 음 을 표시 합 니 다.언제든지 실행 할 수 있 습 니 다.CPU 는 실행 시간 을 결정 합 니 다.th.Start();
스 레 드 는 두 가지 로 나 뉜 다.
프론트 스 레 드-모든 프론트 스 레 드 가 닫 혀 있어 야 프로그램 이 종 료 됩 니 다.
백 스테이지 스 레 드-모든 프론트 스 레 드 가 끝나 면 백 스테이지 스 레 드 는 자동 으로 끝 납 니 다.
두 가지 차이 점:응용 프로그램 은 모든 프론트 스 레 드 를 실행 해 야 종료 할 수 있 습 니 다.
백 엔 드 스 레 드 에 대해 서 는 프로그램 이 실행 되 었 는 지 여 부 를 고려 하지 않 고 바로 종료 할 수 있 습 니 다.모든 백 엔 드 스 레 드 는 프로그램 이 종료 할 때 자동 으로 종 료 됩 니 다.
끝나다
th 스 레 드 를 배경 스 레 드 로 설정 합 니 다.
th . IsBackground = true ;
컨트롤 은 주 스 레 드 로 만 들 어 졌 습 니 다.새 스 레 드 는 주 스 레 드 자원 에 접근 하려 고 합 니 다.프로그램 은 기본적으로 크로스 스 레 드 접근 을 허용 하지 않 습 니 다.크로스 스 레 드 접근 제한 취소
인터페이스 Load 이벤트 에서
Control.CheckForIllegalCrossThreadCalls = false;
FormClosing 이벤트 중:
// null, null,
if(th != null)
{
// , Start
th.Abort();
}
매개 변수 함수 실행:스 레 드 실행 방법 에 인자 가 필요 하 다 면 이 매개 변 수 는 object 형식 이 어야 합 니 다!
Thread th = new Thread(Test); //
th . IsBackground = true;
th.Start("123"); // Test
이렇게 함수 에서 강 한 회전 이 필요 합 니 다:
private void Test (object s)
{
string ss = (string) s ;
......
}
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 WinForm 프로 세 스,스 레 드 와 차이 점 에 대한 소개 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: