Empêcher le blocage lors de l'exécution

Signaler
Messages postés
8
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
21 juin 2012
-
Messages postés
8
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
21 juin 2012
-
Bonjour,
Je suis actuellement en stage de fin de première année de BTS et on m'a demander de crée un programme qui pourrait exporter des donnée d'un fichier XLS vers Google Calendar.
Voici mon problème, Je voudrais empêcher le blocage du WPF lors de l’exécution de mon code. Je sais qu'il faut utiliser le Thread mais je n'arrive pas comme je suis encore débutant.
Voici mon code :
// Bouton Valider Du WPF
private void bt_Valide_Click(object sender, RoutedEventArgs e)
        {

            if ((txt_user.Text "") || (Password.Text ""))
                MessageBox.Show("Veuillez entrez Le nom d'utilisateur et le Mot de passe");
            else
            {
                if (txt_chemin.Text == "")
                {
                    txt_information.Text = "Choisir un fichier";

                }
                else
                {

                    progressBar.Value = 0;
                    List<DataTable> ls = Extract_excel.GetfichierFeuilleFichierExcel(txt_chemin.Text);
                    DataTable dt = ls[0];
                    progressBar.Value = 10;
                    if (dt.Rows.Count > 0)
                    {
                        progressBar.Value = 20;
                        for (int i = 1; i < dt.Rows.Count; i++)
                        {
                            DataRow row = dt.Rows[i];
                            string Evenement row[0] as string, Lieu row[8] as string, Description = row[9] as string;
                            object Year row[1], Month row[2], Day = row[3], HeureD = row[4], MinuteD = row[5], HeureF = row[6], MinuteF = row[7];
                            int Year1 Convert.ToInt32(Year), Month1 Convert.ToInt32(Month), Day1 = Convert.ToInt32(Day), HeureD1
Convert.ToInt32(HeureD), MinuteD1 Convert.ToInt32(MinuteD), HeureF1 Convert.ToInt32(HeureF), MinuteF1 = Convert.ToInt32(MinuteF);
                            progressBar.Value = 50;

                            Write(txt_user.Text, Password.Text, Evenement, Description, Lieu, Year1, Month1, Day1, HeureD1, MinuteD1, HeureF1, MinuteF1);

                        }


                        progressBar.Value = 100;
                        MessageBox.Show("Evenement(s) Ajouté à votre agenda");

                        txt_chemin.Text = " ";
                    }
                    else
                    {
                        MessageBox.Show("Vous n'avez pas de ligne");

                    }

                }
            }
        }



//Fonction Connexion et Post Google Agenda

public void Write(string user, string password, string Even, string Descrip, string location, int year, int month, int day, int hourD, int minuteD, int
hourF, int minuteF)
        {
            
            CalendarService service = new CalendarService("");
            service.setUserCredentials(user, password);
            EventEntry entry = new EventEntry();

            // Set the title and content of the entry.
            entry.Title.Text = Even;
            entry.Content.Content = Descrip;

            // Set a location for the event.
            Where eventLocation = new Where();
            eventLocation.ValueString = location;
            entry.Locations.Add(eventLocation);

            When eventTime = new When();
            DateTime DateD = new DateTime(year, month, day, hourD, minuteD, 0);
            DateTime DateF = new DateTime(year, month, day, hourF, minuteF, 0);
            eventTime.StartTime = DateD;
            eventTime.EndTime = DateF;
            entry.Times.Add(eventTime);

            Uri postUri = new Uri("https://www.google.com/calendar/feeds/" + user + "@gmail.com/private/full");

            // Send the request and receive the response
            AtomEntry insertedEntry = service.Insert(postUri, entry);


        }


J'espère que vous allez pouvoir m'aider.

1 réponse

Messages postés
8
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
21 juin 2012

J'ai trouvé comment Faire le Thread Mais il y a toujours une erreur lors de l’exécution de mon code,
Voici l'erreur :

" The calling thread cannot access this object because a different thread owns it. "

Je pense avoir un autre Thread dans la librairie que j'ai utiliser, Auriez vous une solution ?