나는 데이터베이스를 업데이트 서버를 호출하는 기능을 가지고 있고 나는 결과를 반환하기 전에 완료 될 때까지 기다릴 : 내가하고 싶은 무엇/C# 안드로이드 기다려
public async Task<int> CarryOutPreRegisterDevice(string emailAddress)
{
int intRet=-1;
Task<int> tski = PreRegisterDevice(emailAddress);
intRet = await tski;
return intRet;
}
이 상황이 진행되는 동안 진행 표시를 표시합니다. 그러나 진행 대화 상자에서 기다리는 줄을 감싸 자마자 기다려온 작업이 완료되기 전에 원래 스레드가 실행되어 intRet을 반환 할 수 있습니다.
public async Task<int> CarryOutPreRegisterDevice(string emailAddress)
{
int intRet = -1;
Task<int> tski = PreRegisterDevice(emailAddress);
ProgressDialog progressDialog;
progressDialog = ProgressDialog.Show(AppGlobals.CurrentActivity, "", "Sending....", true);
progressDialog.SetProgressStyle(ProgressDialogStyle.Spinner);
new Thread(new ThreadStart(async delegate
{
intRet = await tski;
progressDialog.Dismiss();
})).Start();
return intRet;
}
작업을 완료하기 전에 반환 선이 실행되지 않도록하기 위해 구조화하는 더 좋은 방법이 있습니까?
감사합니다.
새 스레드를 만드는 이유는 무엇입니까? 그것은 작업의 목적을 무효로 만듭니다. 진행 대화 상자를 보여 주면 바로 그 작업을 기다리고 있습니다. 당신이해야 할 일은 모두 ... – Gusman