タグ

ブックマーク / qiita.com/qiitatosh (3)

  • C#でのWaitHandle待機スレッド調査 - Qiita

    スレッド別、待機実現方法 メインスレッド メインスレッドでWaitHandle.WaitOneメソッドを呼ぶ。 ThreadPoolワーカースレッド Task.RunとWaitHandle.WaitOneメソッドを組み合わせる。 ThreadPool.QueueUserWorkItemとWaitHandle.WaitOneメソッドを組み合わせる。 ThreadPool.RegisterWaitForSingleObjectメソッドを使う。 明示的に生成したスレッド new Thread(), _beginthread(), pthread_create()などでスレッドを生成して利用する。それらのスレッド中でWaitHandle.WaitOneメソッドを呼ぶ。 なおスレッド生成タイミングや生成数にも複数のやり方がある。WaitHandle1つ毎に都度生成&破棄、起動時に固定数生成、負荷に応

    C#でのWaitHandle待機スレッド調査 - Qiita
  • C#で使える1msタイマーを探す - Qiita

    調査内容 C#かつWindowsで1msのタイマーを使いたい。Threading.TimerやTask.Delay(1)では最短でも15msになるっぽいので他の方法を調べた。 環境 Intel Core i5-8265U CPU @ 1.60GHz 1.80 GHz Windows 10 Pro 22H2 C#, .NET Framework 4.6.2, Debug build Visual Studio Community 2022 (64-bit) Version 17.8.5 調査日:2024年5月6日 2024年5月12日、追加調査。WaitableTimer, WaitableTimerExについて。 テストコード 1ms間隔の繰り返しタイマーを30回実行、毎回経過時間を取得してバッファリングする。最後に時間を出力する。 ※私自身が作成中のライブラリのテストコードの一部として実

    C#で使える1msタイマーを探す - Qiita
    s_ryuuki
    s_ryuuki 2024/05/08
  • C#非同期メソッドを指定したスレッド上で動かす - Qiita

    内容 C#の非同期メソッドが実行されるスレッドはThreadPoolクラスが生成したワーカースレッドですが、これを指定したスレッドに切り替える方法を紹介します。 スレッド切り替えの様子 非同期メソッド中でSwitchToメソッドを呼び出すことでそれ以降の動作スレッドを切り替えます。 切り替えの様子: async Task SwitchToTestAsync() { Console.WriteLine(".NET ThreadPoolクラスのワーカースレッドまたは起動元スレッド上"); await mainThreadQueue.SwitchTo(); Console.WriteLine("メインスレッド上"); await userThreadPool.SwitchTo(); Console.WriteLine("自前スレッドプールのワーカースレッド上"); await Task.Yiel

    C#非同期メソッドを指定したスレッド上で動かす - Qiita
    s_ryuuki
    s_ryuuki 2024/03/27
  • 1