私は現在、C# XNA で書かれた Bitcoin Miner を作成しようとしています。
https://github.com/Generalkidd/XNAMiner
ここでの問題は、Miner の実際の数値計算が CPU 時間を使いすぎているように見えるため、起動時にプログラムの UI がほとんどフリーズすることです。凍りついて無反応。Aphid の ParallelTasks ライブラリの実装を試み、for ループの一部を別のスレッドに移行しました。これらの並列 for ループがどのように機能するかを完全には理解していなかったため、作成したバージョンは正しく反復されませんでしたが、プログラムは大幅に高速化されました。いくつかの for ループと一連の foreach ループが残っていました。
コードを最適化する最も簡単で効率的な方法は何ですか? 各ループを独自のスレッドに移動する必要がありますか? または、メソッド全体を独自のスレッドに移動してみますか? または、これらの計算に GPU を使用することは可能でしょうか (CPU マイニングの状態を考えると、最終的にはその方が良いでしょう)。