C# 다중 스레드 액세스 인터페이스
C#2005 이후 인터페이스 제어에 대한 멀티스레드 직접 액세스는 더 이상 지원되지 않지만(인터페이스 생성 스레드와 액세스 스레드는 동일한 스레드가 아님) 대리자를 사용하여 문제를 해결할 수 있습니다.
1. 위임 및 정의 선언
clipboardPRint로 일반 복사 보기
delegate void ShowProgressDelegate(int newPos)
private void ShowProgress(int newPos) 🎜>if (!_progressBar.InvokeRequired )
{
// 그렇지 않은 경우 컨트롤을 직접 조작하십시오.
_progressBar.Value = newPos
}
else
{
// 예 위임을 활성화하려는 경우; access,
ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
// Invoke를 사용하면 함수 호출이 끝날 때까지 기다리지만 BeginInvoke는 기다리지 않고 바로 돌아갑니다.
this.BeginInvoke( showProgress, 새 객체 [] { newPos });
}
}
delegate void ShowProgressDelegate(int newPos);
private void ShowProgress(int newPos)
{
// 결정 스레드 액세스에 있는지 여부
if (!_progressBar.InvokeRequired)
{
// 그렇지 않은 경우 컨트롤을 직접 조작
_progressBar.Value = newPos;
}
else
{
/ / 그렇다면 대리자 액세스 활성화
ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
// Invoke를 사용하는 경우 함수 호출이 완료될 때까지 기다리지만 BeginInvoke는 기다리지 말고 바로 돌아가세요
this.BeginInvoke(showProgress, new object[] { newPos });
}
}
2. 스레드 기능 정의(인터페이스 컨트롤을 읽을 수 있음) 다른 스레드)
클립보드 인쇄로 일반 복사본 보기
private void ProgressStart()
{
while(true)
{
int newPos = _progressBar.Value + 10>if (newPos > _progressBar.Maximum) {
newPos = _progressBar.Minimum;
}
Trace.WriteLine(string.Format("Pos: {0}", newPos)); 여기서 메소드가 직접 호출됩니다. 내부적으로 위임 활성화 여부를 자동으로 결정합니다.
ShowProgress(newPos);
Thread.Sleep(100);
}
}
private void ProgressStart()
{
while(true)
{
int newPos = _progressBar.Value + 10;
if(newPos > _progressBar.Maximum)
{
newPos = _progressBar.Minimum;
}
Trace.WriteLine(string.Format("Pos: {0}", newPos));
// 여기서 메서드가 직접 호출되며 대리자 활성화 여부를 자동으로 결정합니다
ShowProgress(newPos);
Thread.Sleep (100);
}
}
3. 스레드 시작 및 종료
클립보드 인쇄로 일반 복사본 보기
private Thread _progressThread;
_progressThread = new Thread(new ThreadStart (ProgressStart));
// 선택사항, 기능: 스레드가 종료되지 않더라도 프로세스는 종료될 수 있습니다.
_progressThread.IsBackground =
_progressThread; Start();
_progressThread.Abort( );
// 옵션, 계속하기 전에 스레드가 끝날 때까지 기다립니다.
_progressThread = null; > 위 내용은 C# 멀티스레드 접근 인터페이스 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









C#을 사용한 Active Directory 가이드. 여기에서는 소개와 구문 및 예제와 함께 C#에서 Active Directory가 작동하는 방식에 대해 설명합니다.

C#의 난수 생성기 가이드입니다. 여기서는 난수 생성기의 작동 방식, 의사 난수 및 보안 숫자의 개념에 대해 설명합니다.

C#의 액세스 수정자에 대한 안내입니다. 예제 및 출력과 함께 C#의 액세스 한정자의 소개 유형에 대해 논의했습니다.

C# 데이터 그리드 뷰 가이드. 여기서는 SQL 데이터베이스 또는 Excel 파일에서 데이터 그리드 보기를 로드하고 내보내는 방법에 대한 예를 설명합니다.
