

表題の通り、並列パターンライブラリ（PPL)を使用しているDLLをC#側から利用しようと思い、  
C++/CLIでラッパーDLLを作成していたのですが、

**ERROR: Concurrency Runtime is not supported when compiling /clr.**  
とエラーが発生しました。  
どうもPPLはCLI上からは使えないようなのですが、  
このライブラリをどうにかC#上から使う方法はないでしょうか？


CC BY-SA 3.0
2015-03-30T13:52:59.857
8574
2015-04-30T01:37:35.960
9071
question
c# c++ c++-cli
並列パターンライブラリ（PPL)を用いたDLLをC#から使う


エラーメッセージにある通り、C++/CLIとPPLは併用不可能です。以下の代案が考えられます。

  1. [System.Threading.Tasks 名前空間](https://msdn.microsoft.com/ja-jp/library/system.threading.tasks.aspx) 以下のクラスを用いて、C#で並列処理を書き直す。PPL相当の機能が提供されます。
  2. C++/CLIではなくネイティブC++でラッパーDLLを作る。C#からはP/InvokeでDLL関数を呼び出す。
  3. [本家SO質問の回答](https://stackoverflow.com/a/3948016/684921)によれば、C++ソースを分離してPimplイディオムで行ける？（Body側は/clr無し、Handle側は有りでコンパイルしてリンク可能？）


CC BY-SA 3.0
2015-03-31T00:39:01.933
8584
2015-03-31T00:47:09.263
2017-05-23T12:38:56.467
-1
49
8574
answer