/Multi.Threads

Primary LanguageC#Apache License 2.0Apache-2.0

Multi.Threads

Running multi threads

public class Program
    {
        static void Main(string[] args)
        {
            var parameters = new List<Task>();

            for (int i = 0; i < 100; i++)
            {
                parameters.Add(new Task(i));
            }

            var t = ThreadTask
                    .Instance()
                    .SetAction(Operation)
                    .SetSimultaneousThreads(10)
                    .SetThreadsPerMinute(50)
                    .SetTimeOut(1)
                    .RunAsync(parameters);

            /* Execute another operation */
            Thread.Sleep(2000);

            t.Wait();

            parameters.ForEach((task) =>
            {
                if (task.Exception == null)
                {
                    ShowMsg(task.Parameter + " - " + task.Return, ConsoleColor.Blue);
                }
                else
                {
                    ShowMsg(task.Parameter + " - " + task.Exception.Message, ConsoleColor.Red);
                }
            });

            Console.ReadKey();
        }

        private static object Operation(object parameter)
        {
            ShowMsg(parameter.ToString());
            Thread.Sleep(2000);
           return DateTime.Now;
        }
    }