Traceの出力先をファイルにしたりカスタムクラス用いて任意の出力先を設定する方法の紹介です。
ユーザーがログインしているアカウント上で起動しているソフトで生成した待機ハンドルを同じPC上のサービス (LocalSystem = NT AUTHORITY\SYSTEM) 上で利用する方法の紹介です。
既存のファイルに内容を書きこむ時に、直接対象のファイルを開いて書き込みを行うとアプリが強制終了するなどでストリームが異常終了するとファイルの内容が破損する場合があります。この問題を避けるためには以下のアプローチが必要です。 直接ファイルを開…
WebApplicationBuilder などでは定義ファイルとして appsettings.json と appsettings.Development.json は最初から利用できます。 この定義ファイルの仕組みに自作の JSON ファイルを追加しIConfiguration 経由で内容を利用できるようにしたいと思います。 …
UTF-8はBOMの有無があり時と場合によって適切に選択する必要があります。 // BOMあり Encoding bom = System.Text.Encoding.UTF8; // BOMなし Encoding withoutBom = System.Text.UTF8Encoding(false); 取得方法に対称性が無いのが気になるので Utility 化し…
バッファーがいっぱいになるまではデータをバッファリングをしながらバックグランドで1つずつ順番にデータを処理して、バッファーがいっぱいになったら空きができるまで待機となるコマンド実行用のデータキューイングクラスの実装例の紹介です。 確認環境 .N…
何の役に立つかはわかりませんが、一定時間経過したら削除されるリストを実装しててみました。 確認環境 .NET 6 VisualStudio 2022 実装コード 規定では Add(...) した後に、5秒以内に TryGetItemAndRemove() でデータを取り出されなければバックグラウンド…
Fisher-Yates(フィッシャーイェーツ)というアルゴリズムを使って配列やリストを並び替えたいと思います。 アルゴリズムの考え方ですが N 個の要素数があったとして 一番最後の要素 (N) をそれ以外の前方の要素とランダムに交換する 一番最後から -1個目を…
何度も何度も調べなおしてるので自分用のメモです。 他のプロセスが開いているファイルを開こうとすると以下のエラーが発生する。 System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル 'xxxx' にアクセスできません。 以下のよう…
Unity の乱数のシードを保持している Random.State という型があります。 定義は以下の通りでシリアライズして保存することはできますが、中身を見ることはできません。中身を認識する必要は本来ありませんが、リフレクションを使えば中身を取得できそうです…
よくある重み付きの抽選機能の実装例の紹介です。 重み付き抽選とは要素ごとに選ばれる確率が違う抽選方法です。 例えば以下のように各々確率が違うものをランダムで選びます。 Aは50% Bは25% Cは20% Dは5% 確認環境 使い方 実装コード 確認環境 Unity 2022.…
ハック的な手法で List に AsSpan の拡張メソッドをは生やすことができますが、.NET5からは標準ライブラリでサポートされたので両対応してみます。 public static class ListExtensions { [MethodImpl(MethodImplOptions.AggressiveInlining)] public static…