2025-04-15 12:10:19 +02:00

96 lines
3.2 KiB
C#

using System;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
static void Main(string [] args) {
// Create an array of Thread references.
int numThread = Convert.ToInt32(args[0].ToString());
Thread[] array = new Thread[numThread];
for (int i = 0; i < array.Length; i++)
{
// Start the thread with a ThreadStart.
ThreadStart start = new ThreadStart(Start);
array[i] = new Thread(start);
array[i].Start();
}
// Join all the threads.
for (int i = 0; i < array.Length; i++)
{
array[i].Join();
}
Console.WriteLine("DONE");
}
static void Start()
{
// This method has no formal parameters.
Console.Write("Start - ");
GestorePDF.Logic.ThreadManager gp = new GestorePDF.Logic.ThreadManager();
int maxGestoreThreads = int.Parse(ConfigurationManager.AppSettings["maxGestoreThreads"]);
int limit = int.Parse(ConfigurationManager.AppSettings["gestoreThreadsLimit"]);
if (limit < maxGestoreThreads) maxGestoreThreads = limit;
gp.Main(maxGestoreThreads);
}
//static void Main(string[] args)
//{
// // Start a thread that calls a parameterized static method.
// Thread newThread = new Thread(Program.DoWork);
// newThread.Start(42);
// // Start a thread that calls a parameterized instance method.
// Program w = new Program();
// newThread = new Thread(w.DoMoreWork);
// newThread.Start( "The answer.");
// try
// {
// //GestorePDF.Logic.ThreadManager gp = new GestorePDF.Logic.ThreadManager();
// //int maxGestoreThreads = int.Parse(ConfigurationManager.AppSettings["maxGestoreThreads"]);
// //int limit = int.Parse(ConfigurationManager.AppSettings["gestoreThreadsLimit"]);
// //if (limit < maxGestoreThreads) maxGestoreThreads = limit;
// //gp.Main(maxGestoreThreads);
// }
// catch (Exception ex)
// {
// Console.WriteLine("Errore regerico :" + ex.Message.ToString());
// }
//}
//public static void DoWork(object data)
//{
// Console.WriteLine("Static thread procedure. Data='{0}'",
// data);
// GestorePDF.Logic.ThreadManager gp = new GestorePDF.Logic.ThreadManager();
// int maxGestoreThreads = int.Parse(ConfigurationManager.AppSettings["maxGestoreThreads"]);
// int limit = int.Parse(ConfigurationManager.AppSettings["gestoreThreadsLimit"]);
// if (limit < maxGestoreThreads) maxGestoreThreads = limit;
// gp.Main(maxGestoreThreads);
//}
//public void DoMoreWork(object data)
//{
// Console.WriteLine("Instance thread procedure. Data='{0}'",
// data);
//}
}
}