共用方式為


Direct3D 版本之間的線程差異

許多多線程程式設計模型會利用同步處理基本類型(例如 Mutexes)來建立重要區段,並防止一次多個線程存取程序代碼。

不過,ID3D11Device 介面的資源建立方法設計為可重入,而不需要同步化原語和關鍵區段。 因此,資源建立方法有效率且容易使用。

Direct3D 11、10 和 9 之間的差異:
Direct3D 11 預設大部分是安全線程,並繼續允許應用程式使用D3D11_CREATE_DEVICE_SINGLETHREADED退出。 如果應用程式選擇不成為安全線程,則必須遵守線程規則。 執行階段會代表應用程式同步處理線程,以允許並行線程的運行。 事實上,Direct3D 11 中的同步處理比在 Direct3D 10 中使用安全線程層更有效率。
Direct3D 10 一次只能支持執行一個線程。 Direct3D 10 完全支援線程安全,並允許應用程式使用 D3D10_CREATE_DEVICE_SINGLE_THREADED 停用此功能。
Direct3D 9 不會預設為安全線程。 不過,當您呼叫 CreateDeviceCreateDeviceEx 來建立裝置時,您可以指定 D3DCREATE_MULTITHREADED 旗標,讓 Direct3D 9 API 線程安全無虞。 這會導致顯著的同步處理額外負荷。 因此,不建議使 Direct3D 9 API 支援線程安全,因為這會降低效能。

多線程