J'ai deux classes: la classe Action, qui a une méthode d'exécution des fichiers VBScript, et la classe Item qui contient une liste d'instances d'action. Mon problème est que je veux limiter le nombre de fichiers VBScript qui peuvent être exécutés en même temps. Je n'ai aucune expérience avec cela, et j'ai fait des recherches googles autour, mais je n'ai rien trouvé. Ma seule idée de la façon de faire est est présenté ici:Limiter le nombre de processus créés
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
namespace Test
{
public class Action
{
public string Script;
public static int Limit;
public static int ActiveCount = 0;
public Process process = new Process();
public Action(string script)
{
Script = script;
}
public void Execute()
{
process.EnableRaisingEvents = true;
process.Exited += new EventHandler(Handler);
try
{
if (ActiveCount < Limit)
{
process = Process.Start(
"c:\\windows\\system32\\wscript.exe",
"\"" + Script + "\"");
ActiveCount++;
}
}
catch(Win32Exception e)
{
}
}
private void Handler(
object sender, EventArgs e)
{
ActiveCount--;
}
}
public class Item
{
public ArrayList Actions = new ArrayList();
}
class Program
{
static void Main()
{
Action.Limit = 5;
Item item = new Item();
item.Actions.Add(
new Action("C:\\Scripts\\Test_1.vbs"));
for (int i = 0; i < 10; i++)
{
foreach (Action action in item.Actions)
{
action.Execute();
Console.WriteLine(Action.ActiveCount);
}
}
}
}
}
L'exigence de limiter le nombre de processus créés me semble commun, mais comme je le disais, je n'ai pas été en mesure de trouver des échantillons que je pouvais Construire. Ma question est la suivante: quelle est la manière habituelle de faire cela? (Je n'ai pas non plus été capable de trouver des échantillons ici sur StackOverFlow, donc s'il y en a, veuillez poster le lien). Tout indice ou lien est le bienvenu.
Est-ce que cela doit être marqué à la fois par [processus] et [proc]? Voir http://meta.stackexchange.com/questions/107791/how-should-the-proc-tag-be-split-up –