private async Task <string> MethodAsyncReturnObject() { var resultFromTimeConsumingMethod = TimeConsumingMethodReturnObject(); ReturnObject returnObject = resultFromTimeConsumingMethod.Result; if (returnObject.Flag) { } string result = await resultFromTimeConsumingMethod + " + MethodAsync. my thread id is:" + Thread.CurrentThread.ManagedThreadId + "\r\n"; ShowMessage(result); return(result); }
private async Task <ReturnObject> TimeConsumingMethodReturnObject() { var task = Task.Run(() => { ReturnObject returnObject = new ReturnObject(); returnObject.ReturnMessage1 = "Helo I am TimeConsumingMethod. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId; Thread.Sleep(5000); returnObject.ReturnMessage2 = "Helo I am TimeConsumingMethod after Sleep(5000). My Thread ID is :" + Thread.CurrentThread.ManagedThreadId; returnObject.ReturnMessage3 = "Hello I am TimeConsumingMethod"; returnObject.Flag = true; return(returnObject); }); return(await task); }
private async Task <ReturnObject> MethodAsync2(int inputValue) { ReturnObject returnObject = new ReturnObject(); var task = Task.Run(() => { for (int i = 0; i < 3; i++) { if (inputValue % 2 == 0) { Thread.Sleep(2000); } ShowMessage(string.Format("async function output: input values is :{0};thread id is:{1};runing count is:{2}", inputValue, Thread.CurrentThread.ManagedThreadId, i)); } return("you input is:" + inputValue); }); returnObject.ReturnMessage1 = await task; returnObject.Flag = true; ShowMessage(string.Format("111:{0}", inputValue)); return(returnObject); }