Я хочу использовать GetNetworkUsageAsync для получения и отправки байтов.
Когда мне это нравится, GetNetworkUsageAsyncHandler называется Но не сразу.
Я хочу использовать BytesSent и BytesReceived немедленно.
Что мне делать?GetNetworkUsageAsync() в Windows Phone 8.1 (C#)
private void MakeDataUsageChart()
{
//Make days of Month
GregorianDates = MakeMonthGregorianDate(YearGregorian, MonthGregorian);
localTime = new DateTime(2015, 9, 2, 0, 0, 0);
StartTime = new DateTimeOffset(localTime, TimeZoneInfo.Local.GetUtcOffset(localTime));
localTime = new DateTime(2015, 9, 3, 0, 0, 0);
EndTime = new DateTimeOffset(localTime, TimeZoneInfo.Local.GetUtcOffset(localTime));
InternetConnectionProfile.GetNetworkUsageAsync(StartTime, EndTime, DataUsageGranularity.Total, new NetworkUsageStates()).Completed = GetNetworkUsageAsyncHandler;
for (int count = 0 ; count <= GregorianDates.Count -1 ; count++)
{
ChartDatasGregorian.Add(new Data()
{
CategoryDownload = GregorianDates[count],
ValueDownload = BytesReceived,
CategoryUpload = GregorianDates[count],
ValueUpload = BytesSent,
CategoryTotal = GregorianDates[count],
ValueTotal = BytesReceived + BytesSent
});
}
this.DataUsageLineSeries.DataContext = ChartDatasGregorian;
}
private void GetNetworkUsageAsyncHandler(IAsyncOperation<IReadOnlyList<NetworkUsage>> asyncInfo, AsyncStatus asyncStatus)
{
if (asyncStatus == AsyncStatus.Completed)
{
IReadOnlyList<NetworkUsage> networkUsages = asyncInfo.GetResults();
foreach (NetworkUsage networkUsage in networkUsages)
{
string BytesSents = networkUsage.BytesSent.ToString();
string BytesReceiveds = networkUsage.BytesReceived.ToString();
BytesSent = Convert.ToInt64(BytesSents);
BytesReceived = Convert.ToInt64(BytesReceiveds);
//Column2DataPlan.Text = BytesSents + " " + BytesReceiveds;
}
}
}
Прошу прощения за плохой английский.
Спасибо.
@Amin Более подробную информацию о [Асинхронное программирование с использованием асинхронных и ожидающих] (https://msdn.microsoft.com/en-us/library/hh191443.aspx) –