アンマネージドアルゴリズムクラス用のラッパークラスを作成中です。私は、結果の処理とオンザフライ表示に別々のスレッドが必要なところに来ました。C++/CLIスレッド同期(マネージコードとアンマネージコードを含む)
私は仕事をしている私の管理されていないクラスの1つの方法があります(私はそれを変更することはできません)。その中にメインループがあります。私の計画は、各反復の終わりに結果を描画できるようにすることでした。
System :: Threading :: Monitorメソッドを使用して同期を実行したかったのです。ただし、管理されていないクラスでは作成できない管理参照が必要です。どうすればその問題を解決し、スレッド同期を実行するのでしょうか?
申し訳ありませんが、これは明白な部分です。 WinAPI同期が最後の手段です。これまで私はSystem :: Threading :: Monitor :: Enter( "Lock1")を呼び出すことができました。 CLRでは単一のオブジェクトとして宣言または使用された回数にかかわらず文字列定数が保持されるため、このトリックを実行するアンマネージドクラスは使用できません。別の方法として、静的SyncRootを使用する方法があります。私は今それを試し、何が起こるか見る。 – kubal5003
文字列定数のソリューションは本当にうまく動作します:) – kubal5003