タグ

2022年7月13日のブックマーク (3件)

  • neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

    async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最

  • フォーム間でデータの受け渡しをクールに行う。 - まるまるこふこふ

    さいちゃんです。 C#でWindowsアプリケーションを作ってると、 「ここでユーザーが情報を入力するための子フォーム開いて、入力されたデータを親フォームのGridViewに反映させたいな~」 「親フォームのデータを子フォームに表示させて、子フォームの内容をユーザーが編集したら親フォームで受け取りたいな~」 ってこと、あると思います!色々と方法はあるし、「フォーム間 値 受け渡し c#」みたいな検索ワードでググれば星の数ほど出てくるのですが、親フォームや子フォームにpublicなアクセサを撒き散らすことになるので、美しくないな~と思いました。なので作ってみました。 まずは親フォーム Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;

    フォーム間でデータの受け渡しをクールに行う。 - まるまるこふこふ
  • メソッド上にコードの複雑さを表示するVisual Studio拡張機能を作りました - Qiita

    ソースコードの複雑さ、不具合のリスクを定量化したコードメトリクス1というものがあります。 コードメトリクスは計算方法によっていくつか種類があり、メジャーなものだと以下のものがあります。 Cyclomatic Complexity(循環的複雑度) Cognitive Complexity(認知的複雑度) Maintainability Index(保守容易性指数) Lines of Code(コードの行数) これらのコードメトリクスを計算し、CodeLensに表示するVisual Studio拡張機能2を作成しました。 tackme31/howmessy: How messy is your code? 以下のようにコードメトリクスをもとにコードが複雑かどうかを判定し、CodeLensに表示してくれます(デフォルトではCognitive Complexityをもとに計算します)。 今のところ

    メソッド上にコードの複雑さを表示するVisual Studio拡張機能を作りました - Qiita