Предположим, у меня есть List<Task>
:
private readonly List<Task> _tasks = new List<Task>(new Task[9]);
Я хочу создать Task
для запуска метод DoWorkAsync
, доступный внутри класса Foo
, поэтому я сделал следующее:
_tasks[0] = new Task<Foo>(() => new Foo().DoWorkAsync());
поэтому класс Foo
содержит метод DoWorkAsync
, дизайн которого похож на этот:
public async Task HeavyAsync()
{
while (true)
{
string newData = DateTime.Now.ToLongTimeString();
Console.WriteLine(newData);
await Task.Delay(200);
}
}
На самом деле я могу запустить Task
, используя _tasks[0].Start();
.
Это работает, но главная проблема в том, что я хочу получить доступ к общедоступному свойству класса Foo
и не могу этого сделать, потому что когда я набираю это: _tasks[0].
Я получу следующий метод:
Я также пытался использовать GetAwaiter()
и await
:
var foo = await _tasks[0];
но я получу следующую ошибку:
Невозможно назначить void локальной переменной с неявным типом
Как я могу получить доступ к Foo
свойствам