꽤 오래 실행되는 프로세스로 인해 현재 내 응용 프로그램이 잠시 정지됩니다.backgroundworker를 사용하여 장기 실행 프로세스가 여전히 작동 중임을 보여줍니다.
이 프로세스를 배경 작업자로 래핑하고 사용자에게 상태를 제공하려면 어떻게해야합니까?
이상적으로 프로세스 자체가 진행 상황을보고해야한다는 것을 알고 있지만 그 프로세스를 구현할 수 있다고 생각하지 않습니다. 프로세스에서 코드를 변경할 수는 없지만 너무 많이 변경하려고하지는 않습니다.
backgroundworker에서 프로세스를 시작하여 내 앱이 반응 형으로 유지 될 수 있다면 좋을 것입니다. 이제 내가 할 수있어. 그러나 문제는 프로세스가 여전히 실행 중임을 나타내는 무언가를 진행률 표시 줄에 표시하는 쉬운 방법이 있습니까?
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
StartLongRunningProcess();
}
내 코드는 위와 같이 지금, 나는 내가 진행 막대를 업데이트 할 수있는 몇 가지 방법으로 과정을 포장하는 방법에 대해 궁금 해서요? 아니면 코드를 완전히 변경하지 않고이 프로세스에서 좀 더 많은 정보를 얻을 수있는 쉬운 방법이 있습니까? 이 긴 실행 프로세스에는 수정 된 행 카운터가 있지만 실행이 끝나면 값을 반환합니다.
BackgroundWorker 및 ReportProgress 옵션의 작동 방식을 알고 있지만 문제는 프로세스가 실행되고 실행 중 피드백을 제공하지 않는다는 것입니다.
당신이 BackgroundWorker에 어떤이 진척 바의 갱신에 사용하는 데 소요의 ProgressChanged 이벤트로 봤어 전체 예를 찾을 수 있습니까? 별로 나쁘지 않습니다. – Servy
1에서 100 사이의 숫자로 전화하십시오 (완료율) - 여기에 예제가 있습니다. http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx –
Henk이 봅니다. 내 문제는, 나는 정말로 데이터를 가지고 있지 않다. 그것은 전체적인 질문이다. – Tys