나는 실행하는 오래 실행되는 기능을 배경으로 작업에서 나 asp.net 응용 프로그램. 하기 전에 작업이 완료된 메인 스레드가 종료(저는 그것을 원하는 방식으로,이를 사용하면 기다리고 있는 키워드고 main 스레드에까지 기다리고 작업이 완료되면,나는 프록시 오류 메시지
프록시의 오류
프록시 서버에서 잘못된 응답을 받았 업스트림 서버로부터 작업 배경이 너무 길
하지만 일단 후 작업 완료에도 나는 페이지를 새로 고침하여 리다이렉션하는 동일한 페이지 또는 어느 나는 할 수 있을 재정의합니다. 방법은 없을 업데이트 UI 후 main 스레드가 완료되면 실행합니다.
내 코드는 다음과 같이 간다:
protected void btnImport_Click(object sender, EventArgs e)
{
var task = ImportThread();
if (task.IsCompleted)
{
DisplaySuccess("Import success");
}
else
DisplayError("Import failed");
}
private async Task<bool> ImportThread()
{
try
{
var success = await Task<bool>.Run(() => new Manager().Import().ConfigureAwait(false);
if (task.IsCompleted)
{
DisplaySuccess("Import success");
}
else
{
DisplayError("Import failed");
}
return true;
}
위 async 작업을 기다립니다 아래의 방법에서 존재하는 다른 클래스입니다.
public bool Import()
{
// some operations here
return true;
}
이 메소드가 완료되어 반환하는 ImportThread()
하지만 작성된 코드가 있을 무시지 업데이트 UI. 를 업데이트해야 합 UI 의 상태를 가져옵니다. 고도서 ImportThread
지로 돌아가 버튼을 클릭하 이벤트 방법도.
제발 도와주세요 어떤 방법을 업데이트 UI 의 상태를 가져옵니다.
참고:용 Redirect.Response
에 ImportThread()
페이지를 새로 고침하지만,작동 하지 않았