C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#8.0の非同期ストリームとは何ですか?


C#8.0では、データのストリーミングソースをモデル化する非同期ストリームが導入されています。データストリームは、多くの場合、要素を非同期で取得または生成します。

シーケンスを生成するコードは、yield returnを使用して、async修飾子で宣言されたメソッドの要素を返すことができるようになりました。

awaitforeachループを使用して非同期ストリームを消費できます。

以下の構文

static IEnumerable<string> Message(){
   yield return "Hello!";
   yield return "Hello!";
}
Can be replaced by IAsyncEnumerable
static async IAsyncEnumerable<string> MessageAsync(){
   await Task.Delay(2000);
   yield return "Hello!";
   await Task.Delay(2000);
   yield return "Hello!";
}

class Program{
   public static async Task Main(){
      await foreach (var item in MessageAsync()){
         System.Console.WriteLine(item);
      }
      Console.ReadLine();
   }
   static async IAsyncEnumerable<string> MessageAsync(){
      await Task.Delay(2000);
      yield return "Hello!";
      await Task.Delay(2000);
      yield return "Hello!";
   }
}

出力

Hello!
Hello!

  1. C#の名前空間とは何ですか?

    名前空間は、ある名前のセットを別の名前のセットから分離する方法を提供するためのものです。名前空間の定義は、次のように、キーワードnamespaceで始まり、その後に名前空間名が続きます- namespace namespace_name {    // code declarations } 名前空間を定義する- namespace namespace_name {    // code declarations } 以下は、C#で名前空間を使用する方法を示す例です- 例 using System; namespace first_space {

  2. Pythonのさまざまな種類の引用符とは何ですか?

    引用記号は、Pythonで文字列オブジェクトを作成するために使用されます。 Pythonは、一重引用符、二重引用符、および三重引用符で囲まれた文字列を認識します。文字列リテラルは、文字のシーケンスを一重引用符(hello)、二重引用符( hello)、または三重引用符(helloまたは hello )で囲むことによって記述されます。 >>> var1='hello' >>> var1 'hello' >>> var2="hello" >>> var2 'hello