C++11/CLI プログラムではどれを使用すればよいですか?
c++11 スレッドと .net スレッドの長所と短所はどれですか?
マネージド コードとネイティブ コードについて質問している場合は、可能な限りマネージド コード C# を使用してください。また、.NET 4 は、マルチスレッドに役立つ優れた API をサポートしています。まず、タスク並列ライブラリ (TPL) と同時コレクションのサポートを参照してください。
一般的なアドバイスとしては、可能な限りマネージド コードを使用し、マネージド ソリューションに完全に適合しない問題に対しては、必要に応じてネイティブへの相互運用を使用することです。
C# と C++/CLI の使用について質問している場合は、C# を使用してください。どちらも CLI (マネージド) 言語ですが、C++/CLI は操作が難しく、一部のマネージド/ネイティブ境界シナリオでの使用に最適です。また、C++/CLI は Intellisense をサポートしていません (少なくとも VS2010 では、2012 年にサポートされるようになったのでしょうか?)
C++11 は、標準ベースの、プラットフォームに依存しないスレッド化の方法です。これは、複数のプラットフォームで作業する必要がある場合に重要です。
.Net でスレッド化すると、通常、アプリケーションが OS (Windows) に結び付けられます。これには、ガベージ コレクションなどの利点があります (これは標準 C++ では不適切です)。ただし、おそらく、.Net フレームワークをアプリケーションと共に出荷する必要があることに注意してください。フレームワークのバージョン間で問題が発生することは珍しくありません。
在職期間を考慮する: .NET スレッド化は長い間存在しており、C++/CLI で動作することが知られています。C++11 スレッド化は新しいものであり、/CLI は主流ではなく、/CLI と C++11 スレッド化を一緒に使用している人はほとんどいない可能性が高いため、C++/CLI との間で問題が発生するのを完全に見ることができました。