private static Task PrintTrace(string hostNameOrAddress, StreamWriter writer) { return(Task.Run(() => { int i = 1; foreach (var ip in MyTraceRoute.GetTraceRoute(hostNameOrAddress)) { writer.WriteLineAsync(i.ToString() + ", " + hostNameOrAddress + ", " + ip.ToString()); i++; } })); }
static void Main(string[] args) { while (true) { Console.WriteLine("Begin writing"); FileStream FS = new FileStream(_fileName, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter SW = new StreamWriter(FS); FS.Position = FS.Length; var sites = new List <Task>(); sites.Add(MyTraceRoute.PrintTraceAsync("mail.ru", SW)); sites.Add(MyTraceRoute.PrintTraceAsync("ya.ru", SW)); sites.Add(MyTraceRoute.PrintTraceAsync("vk.com", SW)); sites.Add(MyTraceRoute.PrintTraceAsync("Google.com", SW)); foreach (var t in sites) { t.Wait(); } SW.Close(); FS.Close(); Console.WriteLine("End writing"); Thread.Sleep(120000); } }