WP 8.1에서 응용 프로그램을 작성 중입니다. 내 방법 중 하나는 HTML을 구문 분석하고 모든게 괜찮 았어. 하지만 폴란드 문자를 사용하도록 코딩을 변경하고 싶습니다. 그래서 변수 길이가 byte [] 인 속성을 가져야합니다. 이것을 가능하게하기 위해서는을 으로 사용하고 asnych에 내 방법을 변경해야합니다.비동기, 기다리고 이상한 결과
public async void GetTimeTable(string href, int day)
{
string htmlPage = string.Empty;
using (var client = new HttpClient())
{
var response = await client.GetByteArrayAsync(URL);
char[] decoded = new char[response.Length];
for (int i = 0; i < response.Length; i++)
{
if (response[i] < 128)
decoded[i] = (char)response[i];
else if (response[i] < 0xA0)
decoded[i] = '\0';
else
decoded[i] = (char)iso8859_2[response[i] - 0xA0];
}
htmlPage = new string(decoded);
}
// further code... and on the end::
TimeTableCollection.Add(xxx);
}
public ObservableCollection<Groups> TimeTableCollection { get; set; }
방법은 MainPage.xaml.cs를
에서vm.GetTimeTable(navContext.HrefValue, pivot.SelectedIndex);
TimeTableViewOnPage.DataContext = vm.TimeTableCollection;
를 호출 그리고 지금 내 질문입니다. vm.TimeTableCollection이 null 인 이유는 무엇입니까? 비동기를 사용하지 않고 모든 것이 괜찮 으면 vm.TimeTableCollection에 x 요소가 있습니다.
'GetTimeTable'을 기다리지 않으므로 컨트롤이 완료되기 전에 다음 줄로 계속 진행됩니다. 이에 대한 많은 예제가 있습니다. –