2010-05-24 4 views
2

가능한 중복 :
.NET Controls: Why aren’t all calls thread-safe?.NET에서 크로스 스레드 작업을 허용하지 않는 이유는 무엇입니까?

이 질문은 크로스 스레드 작업이며,이를 방지하는 방법하지만, .NET 프레임 워크의 내부 역학 왜 허용하지 않는 것에 대해 아닙니다 크로스 스레드 작업.

왜 SerialPort DataReceived 이벤트가 내 양식의 간단한 텍스트 상자를 업데이트 할 수 없는지 이해할 수 없으며 대의원을 사용하는 것이 가능한 이유는 무엇입니까?

+0

@ChrisF : 그것에 대해 "가능한"것은 없습니다. – Richard

+0

@ 리차드 - 첫 번째 사람이 질문을 복제물로 표시 할 때 주석이 자동으로 추가됩니다. 실제로 닫힌 후에는 질문 본문에 대한 편집으로 대체됩니다. – ChrisF

+0

@ChrisF : 전에는 알지 못했지만 ... (그러나 여전히 적용됩니다 :-)) – Richard

답변

2

.NET에서는 크로스 스레드 작업이 가능합니다. 하지만 안전하게 처리해야합니다. 크로스 스레드 작업에는 Invoke/BeginInvoke 메서드를 사용하십시오. Invoke는 "어이, 텍스트 상자! 시간이되면 스스로 업데이트하십시오."라는 의미입니다. 사용 예는 다음과 같습니다 on MSDN

관련 문제