Repository navigation
ZH TW CSharp Async
Codex edited this page Oct 11, 2026
·
2 revisions
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
async 允許在方法中使用 await。 await等待操作完成並繼續執行,而不必建立新執行緒。 Task代表操作完成,Task<T>代表完成及結果。非同步方法執行同步部分,直到第一個掛起等待。
請將此範例另存為 Example.cs,並與本頁其他範例分開執行。
Example.cs:
// PROJECT-EXAMPLE
async System.Threading.Tasks.Task<int> ReadAsync()
{
await System.Threading.Tasks.Task.Delay(1);
return 7;
}
System.Console.WriteLine(await ReadAsync());結果:
7
async Task<int> CalculateAsync(int value)
{
await WaitAsync(10);
return value * 2;
}
int result = await CalculateAsync(21);
UO.Print(result.ToString());Task<int> FirstAsync() => Task.FromResult(2);
Task<int> SecondAsync() => Task.FromResult(3);
int[] results = await Task.WhenAll(FirstAsync(), SecondAsync());
UO.Print(results.Sum().ToString());Task.WhenAll 等待所有任務,WhenAny 等待第一個完成的任務。 WhenAny下的其他任務不會自動取消。 ValueTask在特殊的API中有用,並且對重新等待有限制。避免非同步鏈中的.Wait()和.Result;期待await。
ClassicUO — Bad Newbie & C# Scripts IDE