0

我有一个 .NET 应用程序,它尝试在不同的远程机器上启动不同的安装。在实际安装发生之前,应用程序连接到这些远程机器并通过为每台远程机器生成不同的线程(每个线程负责获取特定安装的现有版本)来获取这些安装的现有版本。

在特定情况下,有两个调用将现有版本获取到两台不同的机器,其中一个调用需要更长的时间,而另一个需要更少的时间。现在的问题是应用程序产生线程的顺序正在产生影响。如果我生成需要更多时间首先获取版本的线程,则第二个线程(需要更少时间)无法获得正确的版本,因为它无法连接到远程机器。如果我生成的线程需要更少的时间来获取版本,那么两个线程都会返回正确的版本。我觉得有一些资源的竞赛。有什么线索吗?提前致谢。

一些代码片段

class RemoteInstallable
{
//...other functions...
public override bool GetExistingVersion()
   {
            try
            {
                base.ExistingVersion = RemoteInstaller.GetExistingVersion(base.InstallInfo.VersionPath);
                return true;
            } 
   }
//....others..
};

GetAllVersions()
{
 foreach ( R as remoteinstallabe in ListofAllRemoteInstallables)
  {
    Thread T =  new Thread();
    //Use T to get version of R 
  }
}
4

0 回答 0