Page 123 - CSharp/C#
P. 123

}

         // execution of our time intensive Method
         private void BwDoWork(object sender, DoWorkEventArgs e)
         {
             e.Result = TimeintensiveMethod(e.Argument);
         }

         private int TimeintensiveMethod(object file)
         {
             Console.WriteLine("Start TimeintensiveMethod.");

             // Do some time intensive calculations...
             using (StreamReader reader = new StreamReader(file.ToString()))
             {
                 string s = reader.ReadToEnd();

                for (int i = 0; i < 10000; i++)
                     s.GetHashCode();
             }
             Console.WriteLine("End TimeintensiveMethod.");

             // return something as a "result"
             return new Random().Next(100);
         }



        Task


        See below for a simple example of how to use a Task to do some time intensive stuff in a
        background process.

        All you need to do is wrap your time intensive method in a Task.Run() call.


         public void ProcessDataAsync()
         {
             // Start the time intensive method
             Task<int> t = Task.Run(() => TimeintensiveMethod(@"PATH_TO_SOME_FILE"));

             // Control returns here before TimeintensiveMethod returns
             Console.WriteLine("You can read this while TimeintensiveMethod is still running.");

             Console.WriteLine("Count: " + t.Result);
         }

         private int TimeintensiveMethod(object file)
         {
             Console.WriteLine("Start TimeintensiveMethod.");

             // Do some time intensive calculations...
             using (StreamReader reader = new StreamReader(file.ToString()))
             {
                 string s = reader.ReadToEnd();

                 for (int i = 0; i < 10000; i++)
                     s.GetHashCode();
             }
             Console.WriteLine("End TimeintensiveMethod.");





        https://riptutorial.com/                                                                               69
   118   119   120   121   122   123   124   125   126   127   128