public static void Main(string[] args) { IMPORTANCELEVEL x = IMPORTANCELEVEL.Error; for (int i = 0; i < args.Length; i++) { if (hlpF.check(ref i, args)) { usage(); } else if (dbgF.check(ref i, args)) { ; } else if (vF.check(ref i, args)) { ; } else if (logLvl.check(ref i, args)) { ; } else if (logNm.check(ref i, args)) { x = Loger.strtoLvl(logNm); } else if (sleep.check(ref i, args)) { ; } else if (max.check(ref i, args)) { ; } } DateTime st = DateTime.Now; using (Loger l = new Loger(logNm, dbgF)){ if (vF) { l.cnslLvl = IMPORTANCELEVEL.Stats; } primer a = new primer("first", l, ThreadPriority.Normal); primer b = new primer("second", l); // a.t.Priority = ThreadPriority.Lowest; a.t.Join(); l.WriteLine(IMPORTANCELEVEL.Stats, "thread '{0}' finished with {1}/{2} numbers/primers" , "first", a.numbers, a.primers); b.t.Join(); l.WriteLine(IMPORTANCELEVEL.Stats, "thread '{0}' finished with {1}/{2} numbers/primers" , "second", b.numbers, b.primers); DateTime fn = DateTime.Now; l.WriteLine(IMPORTANCELEVEL.Stats, "time of work is {0} secs" , (fn - st).TotalSeconds); } }