次の方法で共有


Windows.System.Threading.Core 名前空間

名前付きイベントとセマフォに応答して実行される作業項目を作成します。 また、リソース割り当てが多い (または完全な) 状況でも、実行する機能を保証する必要がある作業項目のリソースを事前に割り当てる。

注意

ThreadPool API は、デスクトップアプリと UWP アプリでサポートされています。

PreallocatedWorkItemThreadPool を使用して作業項目を作成する場合。RunAsync では、作業項目が作成され、1 つの操作として送信されます。 これはほとんどのシナリオで許容されますが、作業項目のリソースを事前に確保する必要がある場合があります。

PreallocatedWorkItem クラスは、作業項目を事前に構築し、必要なときにスレッド プールに送信できるように、作業項目を "スタンバイ" にします。 これは、作業項目が必要になる前にアプリで使用できるリソースが完全に割り当てられる状況 (作業項目を使用する割り当て解除ルーチンの呼び出しなど) に役立ちます。 作業項目が既に割り当てられている場合でも、リソース割り当て解除ルーチンを呼び出すことができます。また、すべてのリソースが既に使用されている場合でも、 PreallocatedWorkItem をスレッド プールに送信できます。 Win32 COM オブジェクトによって作成された名前付きイベントまたはセマフォに応答して作業項目をキューに入れる必要がある場合があります。 SignalNotifier オブジェクトを使用して、名前付きイベントまたはセマフォに応答して、Windows ランタイム メソッドを実行できます。 これにより、イベントまたはセマフォに名前がある場合に、 の Win32 と COM を使用して送信されたイベントとシグナルに応答するWindows ランタイムコードを記述できます。 たとえば、 SignalNotifier を使用して、UWP アプリに移植されている Win32 コードを操作できます。 ISignalableNotifier場合によっては、イベントまたはセマフォの名前を知ることはできませんが、アプリはそれに応答する必要があります。たとえば、レガシ コードやいくつかの既知のイベントとセマフォでは、名前の代わりに待機可能なハンドルが引き続き使用されます。 ISignalableNotifier を使用すると、待機可能なハンドルに登録された ISignalNotifier オブジェクトを作成できます。

注意

事前割り当て済みの作業項目は、使用可能なすべてのリソースを使い切る可能性があるアプリ、またはリソース割り当て解除ルーチンの作業項目を作成する必要があるアプリにのみ必要です。 シグナル 通知機能は、 に Win32 と COM を使用する特定のアプリにのみ適用されます。 アプリで事前割り当てまたはシグナルを使用する必要がない場合は、 Windows.System.Threading を使用して作業項目を作成します。

クラス

PreallocatedWorkItem

事前割り当て済みの作業項目は、スレッド プールへの送信の前に構築され、必要に応じて作業項目をスレッド プールに送信できるように作成されます。 たとえば、リソース割り当て解除ルーチンに必要な場合に備えて PreallocatedWorkItem を作成できます。リソース割り当て解除ルーチンは、作業項目を作成するのに十分なリソースが使用できない状況で呼び出される可能性があるためです。

注意

ThreadPool API は、デスクトップアプリと UWP アプリでサポートされています。

SignalNotifier

イベントまたはセマフォが通知されたときにメソッドを実行します。 タイムアウト値を指定して、名前付きイベントが発生しない場合 (またはセマフォがシグナル状態に達しない場合) に、期間が経過した後にデリゲートを実行することもできます。

注意

ThreadPool API は、デスクトップアプリと UWP アプリでサポートされています。

代理人

SignalHandler

シグナル通知のアタッチされたイベントまたはセマフォが通知されたとき、または省略可能なタイムアウト値 (どちらか早い方) が経過したときに呼び出されるメソッドを表します。