我有一系列方法(带有可变数量的参数),它们返回一个Task。我想创建一个方法,在每个这些方法前后执行一些操作,通过传递Task实现。 在这个示例中,我已经简化了所有内容(删除了cancellationToken、实际处理等):
public async Task<string> GetDataString()
{
Console.WriteLine("Executing");
return "test";
}
public async Task<T> Process<T>(Task<T> task)
{
Console.WriteLine("Before");
var res = await task;
Console.WriteLine("After");
return res;
}
在我的主要代码中:
Task<string> task = GetDataString();
string result = await Process<string>(tasks);
Console.WriteLine(res);
控制台输出为
Executing
Before
After
test
我该怎么做才能创建任务但不实际启动它?并且仅在等待之前启动它?
我成功地创建了一个 PauseToken,如这篇文章所解释的: https://devblogs.microsoft.com/pfxteam/cooperatively-pausing-async-methods/ 但我想知道是否有更好的方法。
谢谢, Mattia
Func<Task>
。该方法在整个框架中使用。 - tia