我正在尝试使用参数执行几个运行Alchemy Catalyst的进程并进行一些操作(使用Catalyst API)。问题是异步运行它们。
具有8个处理器的机器 - 在执行开始时(在使用2个进程的程序中)我得到2个正在运行的Catalyst程序。您可以通过获取CPU时间来看到它们正在运行 - >看(第一张图片)图片。 几秒钟后,其中一个突然被阻挡,不再获得CPU时间(第二张图片)。这一直持续到第一个过程完成他的工作。
我感觉Catalyst不支持多处理。
但我无法向自己解释如何利用两个不同的Catalyst实例。 非常感谢。
class Program
{
static void Main(string[] args)
{
Japanese jp = new Japanese();
Brasilian br = new Brasilian();
jp.startNPprocess();
br.startNPprocess();
}
}
public class Japanese
{
public void startNPprocess()
{
string brz = @"D:\Builder\master\Languages\Destination_TTK\jap";
string brz1 = "D:\\Builder\\master\\Languages\\TTK\x64\\jap.ttk";
string brz2 = "D:\\Builder\\master\\Languages\\Destination_TTK\\TTK\\jap.ttk";
string pathtoCatalyst = @"C:\Program Files (x86)\Alchemy Software\Catalyst 10.0\Catalyst.exe";
string args = String.Format("/M Vasili TTKName:{0} FromFolder:{1} SourceLang:English(United States) TargetLang:Japanese", brz2, brz);
Process pr = new Process();
ProcessStartInfo prs = new ProcessStartInfo();
prs.FileName = pathtoCatalyst;
prs.Arguments = args;
pr.StartInfo = prs;
pr.Start();
}
}
}
class Brasilian
{
public void startNPprocess()
{
string brz = @"D:\Builder\master\Languages\Destination_TTK\brz";
string brz1 = "D:\\Builder\\master\\Languages\\TTK\x64\\brz.ttk";
string brz2 = "D:\\Builder\\master\\Languages\\Destination_TTK\\TTK\\brz.ttk";
string pathtoCatalyst = @"C:\Program Files (x86)\Alchemy Software\Catalyst 10.0\Catalyst.exe";
string args = String.Format("/M Vasili TTKName:{0} FromFolder:{1} SourceLang:English(United States) TargetLang:Portuguese(Brazil)", brz2, brz);
// Prepare the process to run
Process pr = new Process();
ProcessStartInfo prs = new ProcessStartInfo();
prs.FileName = pathtoCatalyst;
prs.Arguments = args;
pr.StartInfo = prs;
pr.Start();
}
}
答案 0 :(得分:0)
在与Catalyst支持人员交谈并进行大量研究之后,无法使用Catalyst的API实现多处理执行。
Alchemy Catalyst程序使用客户端 - 服务器模型来检查您是否拥有有效的许可证。验证完成后,您可以访问程序。 如果您想通过API访问该程序的功能,您不需要许可证。实现中存在一些错误,您可以选择免费使用leverage \ validate \ get-statistics,只有一个限制 - 一个Catalyst运行实例。