多处理Alchemy Catalyst异步执行

时间:2016-08-01 15:42:45

标签: c# multithreading multiprocessing

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

first image

second image

1 个答案:

答案 0 :(得分:0)

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

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