高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1238
Quartz 2D Thread Safety


Q: Quartz 2D はスレッドセーフですか?

A: Quartz は全体としてはスレッドセーフですが、個々の Quartz オブジェクトはスレッドセーフではありません。 一般に、2 つのスレッドが同じオブジェクトに同時に処理を実行していないことを保証できれば、任意のスレッドの任意のオブジェクトに対して処理を実行できます。これを行う最も簡単な方法は、スレッド間でオブジェクトを共有しないことです。

さらにいくつか注意しなければならないことがあります。

  • 同じウインドウ(ビットマップコンテキスト)に描画する複数の CGContextRef があり、それらの CGContextRef の内容が重複している場合、どのような動作が起こるかは定義されていません。
  • CGContextRef が複数ある場合は、同じ CGDataConsumerRef を指している異なる CGPDFContextRef に描画しようとするのは意味がありません。

[2003 年 2 月 25 日]