タグ

Asyncとmicrosoftに関するItisangoのブックマーク (4)

  • 非同期:awaitを含むコードをロックするには?(AsyncLock編)[C#、VB]

    async修飾子/await演算子(VBではAsync修飾子/Await演算子、以降では省略)を使った非同期プログラミングでは、スレッド間の排他ロックにlockステートメント(VBではSyncLockステートメント)が使えない。代わりにSemaphoreSlimクラス(System.Threading名前空間)を使えば可能なのだが、コードの記述が面倒である。そこで稿では、AsyncLockクラスを使って簡潔に記述する方法を説明する。 SemaphoreSlimクラスによる排他ロック SemaphoreSlimクラスを使ってスレッド間の排他ロックを行うコードは、次のようなものだ。lockステートメントが使えない理由も含めて、詳細は「非同期:awaitを含むコードをロックするには?(SemaphoreSlim編)[C#、VB]」を参照していただきたい。 static System.Threa

    非同期:awaitを含むコードをロックするには?(AsyncLock編)[C#、VB]
  • 非同期:awaitを含むコードをロックするには?(SemaphoreSlim編)[C#、VB]

    async修飾子/await演算子(VBではAsync修飾子/Await演算子、以降は「async/await」と略す)によって、非同期プログラミングは簡潔に記述できるようになった。ところが、複数スレッド間の排他ロックを実現するために使ってきたlockステートメント(VBではSyncLockステートメント)が、await演算子(VBではAwait演算子、以降は省略)を含むコードでは使えなくなってしまったのである。async/awaitを多用するコード(特にWindowsストアアプリやWindows Phoneアプリ)を書いていて困った経験を持つ人も多いだろう。await演算子を含むコードをロックするにはどうしたらよいのだろうか? 稿では、SemaphoreSlimクラス(System.Threading名前空間)を使う方法を説明する。 従来のlock/SyncLockステートメントによる

    非同期:awaitを含むコードをロックするには?(SemaphoreSlim編)[C#、VB]
  • タスク ベースの非同期パターン (TAP): 概要 - .NET

    .NET では、新規開発に推奨される非同期設計パターンは、タスク ベースの非同期パターンです。 それは、非同期操作を表すために使用される、System.Threading.Tasks 名前空間の Task および Task<TResult> 型に基づいています。 名前付け、パラメーター、および戻り値の型 TAP では、非同期操作の開始と終了を表すために単一のメソッドが使用されます。 これは、非同期プログラミング モデル (APM または IAsyncResult) パターンとイベントベースの非同期パターン (EAP) の両方とは対照的です。 APM では、Begin と End メソッドが必要です。 EAP では、Async サフィックスを持つメソッドが必要であり、1 つ以上のイベント、イベント ハンドラー デリゲート型、および EventArg 派生型も必要です。 TAP の非同期メソッ

    タスク ベースの非同期パターン (TAP): 概要 - .NET
    Itisango
    Itisango 2019/08/18
    #dotNET #Async is difficult:“The Task-based Asynchronous Pattern (TAP) is based on the System.Threading.Tasks.Task and System.Threading.Tasks.Task<TResult> types in the System.Threading.Tasks namespace, which are used to represent arbitrary asynchronous operations.”
  • 非同期プログラミングのパターン

    .NET には、非同期操作を実行するための 3 つのパターンが用意されています。 タスク ベースの非同期パターン (TAP) 。1 つのメソッドを使用して非同期操作の開始と完了を表します。 TAP は .NET Framework 4 で導入されました。 .NET で非同期プログラミングを行う場合、これが推奨される方法となります。 C# の async キーワードと await キーワード、および Visual Basic の Async 演算子と Await 演算子により、TAP の言語サポートが追加されます。 詳細については、「タスク ベースの非同期パターン (TAP)」を参照してください。 イベント ベースの非同期パターン (EAP) は、非同期動作を提供するための、イベント ベースの従来のモデルです。 これは、Async サフィックスを持つメソッドと、1 つ以上のイベント、イベント

    非同期プログラミングのパターン
    Itisango
    Itisango 2019/08/18
    #dotNET #async is difficult:“Task-based Asynchronous Pattern (TAP), which uses a single method to represent the initiation and completion of an asynchronous operation. TAP was introduced in the .NET Framework 4. It's the recommended approach to asynchronous programming in .NET.”
  • 1