Skip to content

SubscribeOnThreadPool

1. 概要

SubscribeOnThreadPool は、購読処理をスレッドプール上で実行するオペレーターです。UI スレッドをブロックせずにソースへの購読を行いたい場合に使用します。

2. シグネチャ

デフォルト

csharp
public static Observable<T> SubscribeOnThreadPool<T>(
    this Observable<T> source)

ソースへの購読処理をスレッドプール上で実行します。

3. マーブルダイアグラム

SubscribeOnThreadPool のマーブルダイアグラム

購読処理がスレッドプール上のスレッドで実行されます。通知の配信先は変更されません。

4. サンプルコード

csharp
// スレッドプールで購読し、UI スレッドで結果を受け取る
observable
    .SubscribeOnThreadPool()
    .ObserveOnCurrentSynchronizationContext()
    .Subscribe(x => label.Text = x.ToString());

// ブロッキング操作を含むソースの購読をバックグラウンドで実行
blockingObservable
    .SubscribeOnThreadPool()
    .Subscribe(x => Console.WriteLine($"値: {x}"));