多进程Alchemy Catalyst异步执行

本文关键字:执行 异步 Catalyst Alchemy 多进程 | 更新日期: 2023-09-27 17:59:47

我正在尝试执行几个进程,这些进程使用参数运行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();
    }
}

第一图像

第二个图像

多进程Alchemy Catalyst异步执行

在与Catalyst支持进行了大量讨论并进行了大量研究之后,无法使用Catalyst的API实现多处理执行。

Alchemy Catalyst程序使用客户端-服务器模型来检查您是否拥有有效的许可证。验证完成后,您可以访问程序。如果你想通过API访问程序的功能,你不需要许可证。在实现中存在一些错误,让您可以选择免费使用''validate''getstatistics,但有一个限制-一个Catalyst实例正在运行。