Я вызываю QueryJourneys, который делает асинхронный вызов d2, но затем он терпит неудачу при попытке загрузить некоторый контент (XML) с помощью WebClient, также асинхронно.Код C#, использующий Async CTP и бросающий InvalidOperationException «Task_Start_NullAction»
я получаю исключение InvalidOperationException строкой «Task_Start_NullAction» в качестве единственного сообщения.
Что не так?
Вызывающий код:
autoCompleteBox.ItemsSource = await OpenAPI.QueryStation(e.Parameter);
Код за метание исключение:
public static Task<IEnumerable<Journey>> QueryJourneys(
Point from,
Point to,
DateTime lastStart)
{
string str = cs_requestResultPage(from, to, lastStart);
Task<IEnumerable<Journey>> t = d2(str);
t.Start();
return t;
}
private static async Task<IEnumerable<Journey>> d2(string str)
{
var webClient = new WebClient();
webClient.Encoding = Encoding.UTF8;
string t = await webClient.DownloadStringTaskAsync(new Uri(str));
var view = new ResultPageView(XDocument.Parse(t));
return view.Journeys;
Исключение было брошено здесь. Я думал, что написал это, и я, видимо, этого не сделал. 'string t = ждать webClient.DownloadStringTaskAsync (новый Uri (str));' –
@ RobertSundström: Действительно? Это звучит маловероятно - можете ли вы включить полную трассировку стека? Как я уже сказал, бит, который я бы * ожидал *, терпел неудачу, является вызовом 'Task.Start()'. –
В любом случае. Спасибо, что ответили. Я довольно новичок в синтаксисе, и иногда он усложняется. Я действительно интересовался запуском «Задачи». Не думал, что 'await' запустит его для меня автоматически. Интересно, почему я это сделал. Неважно. –