创建不带 运行 的异步任务<T>
Create async Task<T> without run
我怎样才能创建一个异步任务而不是立即运行它?
private static async Task<string> GetString()
{
await Task.Delay(5000);
return "Finish";
}
Task<string> str = GetString();
这会立即启动任务。
如果要延迟执行,请使用 Func。
private static Func<Task<string>> GetStringFunc()
=> GetString;
因此:
var deferred = GetStringFunc();
/*whatever*/
var task = deferred();
更新:请查看Lazy<T>
。
我怎样才能创建一个异步任务而不是立即运行它?
private static async Task<string> GetString()
{
await Task.Delay(5000);
return "Finish";
}
Task<string> str = GetString();
这会立即启动任务。
如果要延迟执行,请使用 Func。
private static Func<Task<string>> GetStringFunc()
=> GetString;
因此:
var deferred = GetStringFunc();
/*whatever*/
var task = deferred();
更新:请查看Lazy<T>
。