private static async Task <int> DescargarCursoAPI(CoursesResource.CourseWorkResource.ListRequest solicitud)
        {
            ListCourseWorkResponse r2 = await solicitud.ExecuteAsync();

            if (r2.CourseWork != null)
            {
                foreach (var trabajo in r2.CourseWork)
                {
                    Console.WriteLine("{0} / {1}", trabajo.Id, trabajo.Title);
                    frmppal.DtGVTareas.Rows.Add(trabajo.Id, trabajo.Title);
                }
            }

            return(1);
        }
        public static async Task CargarTareasyAlumnos(object sender, EventArgs e)
        {
            string idcourse = frmppal.DtGVClases.SelectedRows[0].Cells["ClnIdCourse"].Value.ToString();

            //MessageBox.Show(idcourse);

            frmppal.DtGVTareas.Rows.Clear();
            frmppal.DtGVAlumnos.Rows.Clear();

            UserCredential credential;

            using (var stream =
                       new FileStream("credentials-p4.json", FileMode.Open, FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            //Servicio

            // Create Classroom API service.
            var service = new ClassroomService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            frmppal.toolStripProgressBar2.ProgressBar.Style = ProgressBarStyle.Marquee;
            frmppal.toolStripProgressBar3.ProgressBar.Style = ProgressBarStyle.Marquee;

            CoursesResource.CourseWorkResource.ListRequest request2 = service.Courses.CourseWork.List(idcourse);
            CoursesResource.StudentsResource.ListRequest   request  = service.Courses.Students.List(idcourse);

            var TareaCursoApi = DescargarCursoAPI(request2);
            var TareaClsAPi   = DescargarClsAPI(request);

            var todasTareas = new List <Task> {
                TareaCursoApi, TareaClsAPi
            };

            while (todasTareas.Count > 0)
            {
                Task finishedTask = await Task.WhenAny(todasTareas);

                if (finishedTask == TareaCursoApi)
                {
                    frmppal.toolStripProgressBar2.ProgressBar.Style = ProgressBarStyle.Continuous;
                    frmppal.toolStripProgressBar2.ProgressBar.Value = frmppal.toolStripProgressBar2.ProgressBar.Maximum;
                }
                else if (finishedTask == TareaClsAPi)
                {
                    frmppal.toolStripProgressBar3.ProgressBar.Style = ProgressBarStyle.Continuous;
                    frmppal.toolStripProgressBar3.ProgressBar.Value = frmppal.toolStripProgressBar2.ProgressBar.Maximum;
                }
                todasTareas.Remove(finishedTask);
            }
        }