none
WPF user control Load 시간 단축 RRS feed

  • 질문

  • Window 화면에 다수 UserControl을 배치하여 로드하는 과정을 만들고 있습니다.

    그런데 배치되는 UserControl 개수가 많아질수록 화면이 띄워지는 시간이 길어지네요...

    UI Thread를 추가적으로 만들수 있다던데

    그렇게 UserControl를 서로 다른 쓰레드에 분배(?)해서 로드할 수 있을까요...

    2016년 10월 10일 월요일 오전 9:07

답변

  • UI Thread는 간단하게 Message 루프를 갖는 스레드입니다. 따라서 또 다른 메시지 루프를 갖는 스레드를 제공하고 거기서 Form을 띄우고 UserControl을 올리면 됩니다. 이렇게 되면 Form이 분리가 되는데 결국 하나의 Form에 대해 그 위에 올라가는 UserControl의 로딩 시간을 단축하는 것은 불가능합니다.

    • 답변으로 표시됨 이희준 2016년 10월 12일 수요일 오전 1:18
    2016년 10월 11일 화요일 오전 11:16

모든 응답

  • UI는 그것을 생성한 스레드에서만 접근할 수 있습니다. 따라서 다른 스레드에 분배한다고 해도 결국 UserControl 생성이나 제어는 UserControl들이 생성되는 스레드에서 할 수 밖에 없습니다.
    2016년 10월 11일 화요일 오전 12:47
  • UserControl이 생성되는 쓰레드는 UI Thread 하나인걸로 아는데요.

    그럼 하나의 쓰레드에서만 돌려야하니 시간 단축은 불가하다는 것인가요??

    2016년 10월 11일 화요일 오전 6:05
  • UI Thread는 간단하게 Message 루프를 갖는 스레드입니다. 따라서 또 다른 메시지 루프를 갖는 스레드를 제공하고 거기서 Form을 띄우고 UserControl을 올리면 됩니다. 이렇게 되면 Form이 분리가 되는데 결국 하나의 Form에 대해 그 위에 올라가는 UserControl의 로딩 시간을 단축하는 것은 불가능합니다.

    • 답변으로 표시됨 이희준 2016년 10월 12일 수요일 오전 1:18
    2016년 10월 11일 화요일 오전 11:16