2012-01-27 3 views
0

하나의 DLL에서 2 개의 개별 클래스로 여러 메서드를 호출하는 Windows Form이 있습니다.클래스의 상태 표시

양식에서 상태 업데이트를 표시하고 싶습니다. 즉, 쿼리가 진행되는 방식을 레이블에 표시하고 싶습니다.

dll에서 2 가지 클래스의 메서드 상태를 어떻게 추적합니까?

감사합니다.

다음은 당신이 BackgroundWorker을 원하는처럼

public class ClassA 
{ 

    private string ProgressStatus 
    private void SetStatusText(string currentStatus) 
    { 
     progressStatus = currentStatus; 
    } 

    public void ReportRequest() 
    { 
     SetStatusText("Begin Process..."); // update status 

    SetStatusText("Getting Dates..."); // update status 

     // get dates 
    DatesClass myDates = new DatesClass() 
     datesOK = myDates.GetDates(); 

     if (datesOK) 
     { 
    SetStatusText("Running Request..."); 
    RunFinalRequest(); 
     } 
    } 
} 


public internal class ClassB 
{ 

    private string ProgressStatus 
    private void SetStatusText(string currentStatus) 
    { 
     progressStatus = currentStatus; 
    } 


    public string GetDates() 
    { 

    SetStatusText("Loading Dates..."); // update status 

      LoadDates(); 

      return // return sql query value 
    } 

    private void LoadDates() 
    { 
    // sql query... 
    SetStatusText("Run Query..."); 
    } 
} 
+0

나는 클래스의 상태가 아닌 – sll

답변

1

그것은 소리 ... 샘플 DLL 코드입니다. 두 가지 백그라운드 작업자 클래스를 만들고 메서드를 실행하게하십시오. 그런 다음 ProgressChanged 이벤트를 사용하여 진행 상황을 원래 스레드로보고 할 수 있습니다.

+0

이라는 메서드 실행 상태가 필요하므로 DLL의 각 클래스에 BackGroundWorker가 있습니까? – K09

+0

진도를 "노동자"로보고하는 두 클래스에 대해 생각해보십시오. 신청서에는 두 명의 배경 근로자가 있으며, 각 근로자마다 하나씩 있습니다. 그러면 작업자가 진행 상황을 언제든지보고 할 수 있으며 진행률 보고서가 있음을 UI 스레드에 알립니다. 그게 더 명확 해? –

+0

안녕하세요, 저는 조금 혼란 스럽습니다. 이것에 대한 간단한 예제가 있습니까? 감사! – K09