0

我的项目是独立的应用程序,然后我决定将其拆分为客户端和服务器,因为我同时需要强大的 CPU 使用率和可移植性。现在多个客户端可以连接到一台服务器。

当一对一处理完成这项工作时,这很容易。现在我需要同时调用相同的功能和范围区域 - 通过客户端请求 -

请谁能给我一些线索我应该如何处理这些操作,我需要知道如何在服务器端将客户端的进程相互隔离?我的通信是异步的,服务器收到请求并启动一个新线程。我想我传递了一个参数,其中一个携带客户信息,另一个参数作为作业 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 类并为每个客户端调用该函数,并且由于作业已经在运行,因此忽略同一作业的同一个客户端。

4

2 回答 2

2

没有进入您的应用程序设计,因为您没有谈论太多,我认为您的问题非常适合使用 WCF WebServices。您可以通过设计获得客户端隔离,因为每个请求都将在它自己的线程中开始。您可以将 WCF 主机创建为独立的应用程序/Windows 服务。

于 2011-03-24T12:46:13.423 回答
2

您可以使用WCF服务包装您的通信并将其配置为PerCall服务(这意味着每个请求将与其他请求分开处理)。

因此,您将从同步内容中清除您的业务逻辑。这是最好的方式,因为管理和创建线程并不难实现,但很难正确实现并针对资源消耗进行优化。

于 2011-03-24T12:49:39.383 回答