質問: 表題の通り、並列パターンライブラリ(PPL)を使用しているDLLをC#側から利用しようと思い、 C++/CLIでラッパーDLLを作成していたのですが、 **ERROR: Concurrency Runtime is not supported when compiling /clr.** とエラーが発生しました。 どうもPPLはCLI上からは使えないようなのですが、 このライブラリをどうにかC#上から使う方法はないでしょうか?
回答: エラーメッセージにある通り、C++/CLIとPPLは併用不可能です。以下の代案が考えられます。 1. System.Threading.Tasks 名前空間 以下のクラスを用いて、C#で並列処理を書き直す。PPL相当の機能が提供されます。 2. C++/CLIではなくネイティブC++でラッパーDLLを作る。C#からはP/InvokeでDLL関数を呼び出す。 3. 本家SO質問の回答によれば、C++ソースを分離してPimplイディオムで行ける?(Body側は/clr無し、Handle側は有りでコンパイルしてリンク可能?)