using System.Threading.Tasks; static async Task f() { ... Task<string> str = f2(); return await str; return null; } public async Task<string> f2() { ... return ""; }In f(), if the f2 finished, then return str, otherwise return null, and the caller method of f() can be executed.