C# メモ - DrumMidiEditor/DrumMidiEditorApp GitHub Wiki

コード分析

複合代入

// 修正前
if ( measure == null )
{
     measure = new Measure();
}

// 修正後
measure ??= new Measure();

Process

// フォルダをエクスプローラーで開く
Process.Start( "EXPLORER.EXE", $"{AppContext.BaseDirectory}" );

Task

Delay

Task.Run で非同期処理を実行し、処理をぐるぐる回すときに
Task.Delay を使用するとCPU使用率が爆上がりした。

なんでかなと思ったら、await が必要なんだな。

private async static void ProcSequence()
{
    while ( !_MusicTaskStop )
    {
	//Thread.Sleep( sleeptime );
	Task.Delay( sleeptime );        // この状態だとC待たずにスルーしてしまう。

	await Task.Delay( sleeptime );  // awaitをつけて待機する
    }
}