/// <summary> /// async-lambda /// </summary> private static void ShowTaskHighDelayAsync4() { string url = "http://www.IntelliTect.com"; Console.Write(url); Func <string, Task> WriteWebRequestSizeAsync1 = async(WebUrl) => { WebRequest webRequest = WebRequest.Create(WebUrl); WebResponse webResponse = await webRequest.GetResponseAsync(); using (StreamReader reader = new StreamReader(webResponse.GetResponseStream())) { string text = await reader.ReadToEndAsync(); Console.WriteLine(FormatBytes.FormatBytesMethod(text.Length)); } }; Task task = WriteWebRequestSizeAsync1(url); while (!task.Wait(100)) { Console.Write("."); } }
private static async Task WriteWebRequestSizeAsync(string url) { WebRequest webRequest = WebRequest.Create(url); WebResponse webResponse = await webRequest.GetResponseAsync(); //(self) block -> (callstack thread) go on using (StreamReader reader = new StreamReader(webResponse.GetResponseStream())) { string text = await reader.ReadToEndAsync(); //(self) block -> (callstack thread) go on Console.Write(FormatBytes.FormatBytesMethod(text.Length)); } }
private static void ShowTaskHighDelaySync() { //string url = "http://www.pandatv.com"; string url = "http://www.IntelliTect.com"; Console.Write(url); WebRequest webRequest = WebRequest.Create(url); WebResponse webResponse = webRequest.GetResponse(); Console.Write("......"); using (StreamReader reader = new StreamReader(webResponse.GetResponseStream())) { string text = reader.ReadToEnd(); Console.WriteLine(FormatBytes.FormatBytesMethod(text.Length)); } }
/// <summary> /// asyncMethod /// </summary> private static void ShowTaskHighDelayAsync1() { string url = "http://www.IntelliTect.com"; Console.Write(url); StreamReader reader = null; WebRequest webRequest = WebRequest.Create(url); Task task = webRequest.GetResponseAsync() .ContinueWith(FormerTask => { WebResponse webResponse = FormerTask.Result; reader = new StreamReader(webResponse.GetResponseStream()); return(reader.ReadToEndAsync()); }).Unwrap() .ContinueWith(FormerTask => { if (reader != null) { reader.Dispose(); } string text = FormerTask.Result; Console.Write(FormatBytes.FormatBytesMethod(text.Length)); }); try { while (!task.Wait(100)) { Console.Write("."); } } catch (AggregateException exception) { } }
/// <summary> /// Task.run() Factory.StartNew()->TaskCreationOptions.LongRunning /// </summary> private static void ShowTaskHighDelayAsync2() { string url = "http://www.IntelliTect.com"; Console.Write(url); StreamReader reader = null; WebRequest webRequest = WebRequest.Create(url); //Task task = Task.Run(() => //{ // WebResponse webResponse = webRequest.GetResponse(); // return webResponse; //}).ContinueWith(FormerTask => //{ // reader = new StreamReader(FormerTask.Result.GetResponseStream()); // string text = reader.ReadToEnd(); // return text; //}).ContinueWith(FormerTask => //{ // Console.Write(FormatBytes.FormatBytesMethod(FormerTask.Result.Length)); //}); //Task task = Task.Run(() => //{ // WebResponse webResponse = webRequest.GetResponse(); // reader = new StreamReader(webResponse.GetResponseStream()); // string text = reader.ReadToEnd(); // Console.Write(FormatBytes.FormatBytesMethod(text.Length)); //}); /////////////////////// LongRunning /////////////////////// Task task = Task.Factory.StartNew(() => { WebResponse webResponse = webRequest.GetResponse(); reader = new StreamReader(webResponse.GetResponseStream()); string text = reader.ReadToEnd(); Console.Write(FormatBytes.FormatBytesMethod(text.Length)); }, TaskCreationOptions.LongRunning); try { /// Task Complete Event //task.GetAwaiter().OnCompleted(() => // { // Console.WriteLine("Complete!"); // }); while (!task.Wait(100)) { Console.Write("."); } } catch (AggregateException exception) { } }