로드 된 핸들러에서 컨트롤을 업데이트하는 방법은 무엇입니까?

Greenoldman

일반적인 루틴, 진행률 표시 줄, 사용자가 버튼을 클릭하면 프로세스가 실행되고 진행률 표시 줄이 업데이트됩니다. 권위 있는.

그러나 전체 앱이 시작되는 순간 프로세스를 실행하고 싶으므로 Loaded핸들러 에서 실행합니다 Window(내 앱의 유일한 창).

이제 진행률 표시 줄이 업데이트되지 않습니다. 이 문제를 극복하는 방법?

진행률 표시 줄을 업데이트하는 테스터입니다.

for (int i = 0; i <= 100; i++)
{
    Thread.Sleep(100);

    Progress.Dispatcher.Invoke(
    System.Windows.Threading.DispatcherPriority.Render, new Action(delegate() { ++Progress.Value; }));
}
Kennyzx

당신은을 업데이트하는 데 사용되는 UI 스레드에 모든 작업을 넣어 때문에 Progressbar이 때문에, Progressbar작업이 완료 될 때까지 업데이트되지 않습니다. 백그라운드 스레드에서 작업을 넣어 및 업데이트 Progressbar사용하여 백그라운드 스레드에서 Dispatcher.BeginInvoke.

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    Task.Factory.StartNew(() =>
    {
        for (int i = 0; i <= 100; i++)
        {
            Thread.Sleep(100);                    
            Progress.Dispatcher.BeginInvoke(new Action(delegate() { ++Progress.Value; }), null);
        }
    });
}

.NET 2.0 (TPL을 사용하지 않음)을 사용하는 경우 ThreadPool,

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    ThreadPool.QueueUserWorkItem( (o) =>
    {
        for (int i = 0; i <= 100; i++)
        {
            Thread.Sleep(100);
            Progress.Dispatcher.BeginInvoke(new Action(delegate() { ++Progress.Value; }), null);
        }
    });
}

또는 await-async(.NET 4.5)를 사용하여 .NET으로 DoWork()표시된 모든 메서드에서 호출 할 수 있습니다 async.

async void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    await DoWork();
}

async Task DoWork()
{
    await Task.Run(async () =>
    {
        for (int i = 0; i <= 100; i++)
        {
            Thread.Sleep(100);
            await Progress.Dispatcher.BeginInvoke(new Action(delegate() { ++Progress.Value; }), null);
        }
    });
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ZF2 컨트롤러에서 언로드 된 구성 파일을 얻는 방법은 무엇입니까?

분류에서Dev

다중 파일 업로드 컨트롤을 사용하여 업로드 된 여러 이미지를 병합하는 방법은 무엇입니까?

분류에서Dev

VB6에서 핸들 (이벤트 핸들러가 아님)을 만드는 방법은 무엇입니까?

분류에서Dev

컨트롤러에 정의 된 변수를 구문으로 업데이트하는 방법은 무엇입니까?

분류에서Dev

Android에서 동적으로 생성 된 뷰를 만들 때 이벤트 핸들러를 추가하는 방법은 무엇입니까?

분류에서Dev

VB.NET에서 동적으로 생성 된 컨트롤을 관리하는 방법은 무엇입니까?

분류에서Dev

jest에서 지연된 이벤트 핸들러를 테스트하는 방법은 무엇입니까?

분류에서Dev

realEdit 컨트롤에서 그리드 필드의 계산 된 값을 얻는 방법은 무엇입니까?

분류에서Dev

ng-repeat에서 ng-include에 의해 생성 /로드 된 컨트롤러로 항목을 전달하는 방법은 무엇입니까?

분류에서Dev

Rails에서 업데이트를 위해 뷰에서 컨트롤러로 빈 텍스트 배열을 전달하는 방법은 무엇입니까?

분류에서Dev

서비스 컨트롤러에 정의 된 'isSubmitted ()-method'를 기본 컨트롤러에로드하는 방법은 무엇입니까?

분류에서Dev

AngularJS : 컨트롤러에서 로직을 유지하면서 서비스 속성을 업데이트하는 방법은 무엇입니까?

분류에서Dev

append () 메서드로 추가 된 html 요소에서 컨트롤러의 값을 표시하는 방법은 무엇입니까?

분류에서Dev

JQuery 파일 업로드가 완료된 후 서버에서 반환 된 HTML로 DOM을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Rails에서 Jquery에서 컨트롤러 메서드로 매개 변수를 전달한 다음 반환 된 값을 얻는 방법은 무엇입니까?

분류에서Dev

상속 된 컨트롤러에서 뷰 경로에 액세스하는 방법은 무엇입니까?

분류에서Dev

'ng-model'AngularJS로 컨트롤러 변수를 업데이트하는 방법은 무엇입니까?

분류에서Dev

Spring mvc의 컨트롤러에서 기본 핸들러 메서드를 설정하는 방법은 무엇입니까?

분류에서Dev

Spring mvc의 컨트롤러에서 기본 핸들러 메서드를 설정하는 방법은 무엇입니까?

분류에서Dev

팝업 뷰 컨트롤러에서 이전 뷰 컨트롤러로 값을 전달하는 방법은 무엇입니까?

분류에서Dev

뷰에서 zend의 다른 지정된 컨트롤러의 작업으로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

JSP를 사용하여 업로드 된 .csv 파일에서 양식 텍스트 필드를 자동 업데이트하는 방법은 무엇입니까?

분류에서Dev

Oracle에서 최근 업데이트 된 레코드를 식별하는 방법은 무엇입니까?

분류에서Dev

ASP.NET에서 동적으로 생성 된 사용자 정의 컨트롤에서 컨트롤을 찾는 방법은 무엇입니까?

분류에서Dev

파일 업로드 후 Django에서 AJAX를 사용하여 JavaScript와 연결된 테이블을 업데이트하는 방법은 무엇입니까?

분류에서Dev

폼에서 컨트롤러 메서드로 배열을 전달하는 방법은 무엇입니까?

분류에서Dev

'지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

'지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Rails 4에 정의 된 컨트롤러 메서드를 찾는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    ZF2 컨트롤러에서 언로드 된 구성 파일을 얻는 방법은 무엇입니까?

  2. 2

    다중 파일 업로드 컨트롤을 사용하여 업로드 된 여러 이미지를 병합하는 방법은 무엇입니까?

  3. 3

    VB6에서 핸들 (이벤트 핸들러가 아님)을 만드는 방법은 무엇입니까?

  4. 4

    컨트롤러에 정의 된 변수를 구문으로 업데이트하는 방법은 무엇입니까?

  5. 5

    Android에서 동적으로 생성 된 뷰를 만들 때 이벤트 핸들러를 추가하는 방법은 무엇입니까?

  6. 6

    VB.NET에서 동적으로 생성 된 컨트롤을 관리하는 방법은 무엇입니까?

  7. 7

    jest에서 지연된 이벤트 핸들러를 테스트하는 방법은 무엇입니까?

  8. 8

    realEdit 컨트롤에서 그리드 필드의 계산 된 값을 얻는 방법은 무엇입니까?

  9. 9

    ng-repeat에서 ng-include에 의해 생성 /로드 된 컨트롤러로 항목을 전달하는 방법은 무엇입니까?

  10. 10

    Rails에서 업데이트를 위해 뷰에서 컨트롤러로 빈 텍스트 배열을 전달하는 방법은 무엇입니까?

  11. 11

    서비스 컨트롤러에 정의 된 'isSubmitted ()-method'를 기본 컨트롤러에로드하는 방법은 무엇입니까?

  12. 12

    AngularJS : 컨트롤러에서 로직을 유지하면서 서비스 속성을 업데이트하는 방법은 무엇입니까?

  13. 13

    append () 메서드로 추가 된 html 요소에서 컨트롤러의 값을 표시하는 방법은 무엇입니까?

  14. 14

    JQuery 파일 업로드가 완료된 후 서버에서 반환 된 HTML로 DOM을 업데이트하는 방법은 무엇입니까?

  15. 15

    Rails에서 Jquery에서 컨트롤러 메서드로 매개 변수를 전달한 다음 반환 된 값을 얻는 방법은 무엇입니까?

  16. 16

    상속 된 컨트롤러에서 뷰 경로에 액세스하는 방법은 무엇입니까?

  17. 17

    'ng-model'AngularJS로 컨트롤러 변수를 업데이트하는 방법은 무엇입니까?

  18. 18

    Spring mvc의 컨트롤러에서 기본 핸들러 메서드를 설정하는 방법은 무엇입니까?

  19. 19

    Spring mvc의 컨트롤러에서 기본 핸들러 메서드를 설정하는 방법은 무엇입니까?

  20. 20

    팝업 뷰 컨트롤러에서 이전 뷰 컨트롤러로 값을 전달하는 방법은 무엇입니까?

  21. 21

    뷰에서 zend의 다른 지정된 컨트롤러의 작업으로 데이터를 보내는 방법은 무엇입니까?

  22. 22

    JSP를 사용하여 업로드 된 .csv 파일에서 양식 텍스트 필드를 자동 업데이트하는 방법은 무엇입니까?

  23. 23

    Oracle에서 최근 업데이트 된 레코드를 식별하는 방법은 무엇입니까?

  24. 24

    ASP.NET에서 동적으로 생성 된 사용자 정의 컨트롤에서 컨트롤을 찾는 방법은 무엇입니까?

  25. 25

    파일 업로드 후 Django에서 AJAX를 사용하여 JavaScript와 연결된 테이블을 업데이트하는 방법은 무엇입니까?

  26. 26

    폼에서 컨트롤러 메서드로 배열을 전달하는 방법은 무엇입니까?

  27. 27

    '지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

  28. 28

    '지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

  29. 29

    Rails 4에 정의 된 컨트롤러 메서드를 찾는 방법은 무엇입니까?

뜨겁다태그

보관