Microsoft MVP성태의 닷넷 이야기
wpf 쓰레드에 대해 질문 있습니다. [링크 복사], [링크+제목 복사],
조회: 16949
글쓴 사람
세퉁
홈페이지
첨부 파일
 

wpf에서 ui관련 요소들은 메인 쓰레드에서만 제어가 가능하다고 알고 있습니다..

그래서 보통 다른 쓰레드에서 ui를 제어하려고 할 때

   Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background,
              new Action(() =>
               {
                     //ui 조작
               }));

위에 코드처럼 Dispatcher.Invoke를 사용해서 ui를 조작 하는데...
결국 이것도 메인 쓰레드를 호출(?) 혹은 동기화(?)해서 ui를 조작하는거 같더라구요.


제 질문은 메인 쓰레드가 아닌 다른 쓰레드에서 ui를 조작하는 방법을 알고 싶습니다.
방법이 없는 걸까요?? ㅠㅠ








[최초 등록일: ]
[최종 수정일: 3/22/2019]


비밀번호

댓글 작성자
 



2019-03-22 01시05분
다음의 글을 참고하세요.

C# - 작업자 스레드와 UI 스레드
; http://www.sysnet.pe.kr/2/0/11287

UI 요소의 접근은 반드시 그 UI를 만든 스레드에서!
; http://www.sysnet.pe.kr/2/0/11561

두 개의 윈도우를 각각 실행하는 방법(Windows Forms, WPF)
; http://www.sysnet.pe.kr/2/0/11802
정성태
2019-04-18 06시04분
[deadcat] 저도 많이 헤멨던 부분인데, 가장 베스트인 방법은 UI 구성 요소에 변수를 Binding 해놓고 그 바인딩된 변수를 변경하는게 좋습니다. '
[guest]
2019-04-18 06시06분
[deadcat] 예를들면 TextBox.Text = "변경할텍스트"; 보다는 TextBox Text={Binding ...} 으로 변수를 바인딩 한 뒤 그 변수값을 바꾸면 UI스레드가 알아서 변경합니다. IsEnabled같은것도 마찬가지구요
[guest]
2019-04-18 06시07분
[deadcat] 그게 아니면 말씀하신바와 같이 디스패쳐에서 인보크 하시는 수 밖에 없습니다.
[guest]

1  [2]  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5939괴물신인7/9/20248423템플릿 대체할수있는방법이 있을까요? [6]
5938씨제바보7/5/20247263책 질문드립니다. [1]
5937Thor... donator5/27/20248499C# 12 는 전자책이 언제쯤 나오게 될까요? [1]
5936ds4/26/20249477활성화 되어 있는 커뮤니티 발견하게 되어 기분이 좋습니다. 자주 놀러 올께요. (내용 없습니다. [2]
5935양승조 donator4/25/20249438Reflection 관련 질문 드립니다. [5]파일 다운로드1
5934양승조 donator4/24/20248275Reflection 관련 질문 드립니다. [1]
5933vict...4/23/20248303cpp 라이브러리 디버깅 방법 문의 드립니다. [1]
5932EK4/12/20248275다음 제네릭에서 널익셉션이 뜨는 이유를 알수있을까요? [1]
5931이대희4/2/20248877Windows 앱 SDK C# 템플릿의 용도가 무엇인지요? [1]
5930vict...2/22/202410193ef core, FromSqlRaw 맵핑 질문입니다. [4]
5929a2/17/20249420.Net 8 에서 디버거 변경 [1]
5928vict...2/5/202410656wpf에서 대량 데이터 보여주는 방법 추천 부탁드립니다. [1]
5926엄태영1/12/202410904잘못된 Task 사용으로 인한 데드락 관련 질문 입니다. [3]
5925Euni...12/22/20239887Visual Studio에서 nodejs 사용시 npm install -g @vue/cli 실행시 오류 [1]
5924Euni...12/21/202310272Visual Studio에서 nodejs 사용시 C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\\node_modules\npm\bin\npm-cli.js" prefix -g 를 찾지 못하는 설치 오류 [2]
5923정두호12/4/202310378MSSQL 데이터 전송과 공유폴더의 데이터 전송 차이점 [1]
5922Heeg...10/27/202312502C++의 double pointer를 C#에서 구현하는 방법이 잘 안됩니다. [3]
5921한예지 donator10/3/202312319마샬링 정의 및 목적이 궁금합니다. [5]
5920한예지 donator10/3/202311599C#과 WIN32 API 관계 질문드립니다. [4]
5919이건우9/27/202310771WinForm의 로딩속도 관련 질문입니다 [2]
5917한예지 donator9/14/202311060동기화 도구 질문 있습니다. [4]
5916한예지 donator9/3/202311383Thread.Sleep(500), await Task.Delay(500), Task.Delay(500) 차이점이 궁금합니다. [2]
5915한예지 donator8/30/202311931비동기 코드를 for 문 안에 작성한 경우 제어 변수가 올바르게 동작하지 않는 이유가 궁금합니다. [3]
5914한상욱8/11/202311697.net wpf에서 skiasharp 의 skelement 를 canvas로 사용 하고 있습니다. [1]
5913김태우8/10/202311442지역변수로 이해하는 메서드매개변수 게시글 댓글 [3]
5912guest4/25/202316751[참고 - 초보용] Sqlite 디비는 double이 없고 Real이 대신합니다 [3]
1  [2]  3  4  5  6  7  8  9  10  11  12  13  14  15  ...