C#での非同期メソッドの実装方法は何ですか?

日本語で表現すると、C#で非同期呼び出しを実現する方法はいくつかあります。

  1. asyncとawaitキーワードを使用する:メソッドの前にasyncキーワードを追加し、非同期で実行する必要があるメソッド内でawaitキーワードを使用して非同期操作の完了を待ちます。例:
public async Task<string> GetResultAsync()
{
    // 异步操作
    await Task.Delay(1000);
    return "异步调用完成";
}
  1. Task.Runメソッドを使用すると、新しいスレッドでメソッドを実行し、Taskオブジェクトを返すことができます。非同期メソッドの戻り値を取得するには、Task.Resultを使用できます。例えば、
public static async Task<string> GetResultAsync()
{
    return await Task.Run(() =>
    {
        // 异步操作
        Thread.Sleep(1000);
        return "异步调用完成";
    });
}
  1. DelegateとBeginInvokeメソッドを使用すると、メソッドを非同期で呼び出し、EndInvokeメソッドを使用してメソッドの戻り値を取得することができます。例:
public delegate string MyDelegate();

public static string GetResult()
{
    // 同步操作
    Thread.Sleep(1000);
    return "异步调用完成";
}

public static void AsyncCallback(IAsyncResult ar)
{
    MyDelegate del = (MyDelegate)((AsyncResult)ar).AsyncDelegate;
    string result = del.EndInvoke(ar);
    Console.WriteLine(result);
}

public static void Main(string[] args)
{
    MyDelegate del = new MyDelegate(GetResult);
    del.BeginInvoke(new AsyncCallback(AsyncCallback), del);
    // 等待异步调用完成
    Console.ReadLine();
}

これらは一般的な非同期呼び出しの方法のいくつかです。具体的な要件に応じて適切な方法を選択できます。

bannerAds