私のプロジェクトはスタンドアロン アプリケーションでしたが、強力な CPU 使用率と移植性を同時に必要とするため、クライアントとサーバーに分割することにしました。複数のクライアントが 1 つのサーバーに接続できるようになりました。
1 対 1 の処理が仕事をするときは簡単でした。ここで、クライアントのリクエストを介して、同じ関数とスコープ領域を同時に何度も呼び出す必要があります。
サーバー側でクライアントのプロセスを互いに分離する方法を知る必要がありますか? 私の通信は非同期で、サーバーはリクエストを受け取り、新しいスレッドを開始します。クライアント情報を運ぶパラメーターと、ジョブIDとしての別のパラメーターを渡すと思います-クライアントが戻るのを助けるために、クライアントは複数のジョブを要求し、一部のジョブは他のジョブよりも早く終了します-
各呼び出しでクラス Process をインスタンス化する必要がありますか? 静的メソッドなどを使用できますか。説明があれば非常に役立ちます。
以下は、変更が必要なコードの一部です
class static readonly Data
{
public variable listOfValues[]
}
class Process
{
local variable bestValue
function findBestValue(from, to)
{
...
if(processResult > bestValue) bestValue = processResult
...
}
...
for(i=0;i<10;i++) startThread(findBestValue(i*1000,i*1000+999));
...
}
編集:新しい Process クラスをインスタンス化し、クライアントごとに関数を呼び出し、ジョブが既に実行されているため、同じジョブに対して同じクライアントを無視する必要があると思います。