Oppure

Loading
13/04/09 7:52
Black Shadow
Se devi semplicemente gestire l'evento in un altro Thread puoi fare così:

using System.Threading;
...
//all'interno del metodo in cui vuoi inviare la mail
Thread myThread = new Thread(new ThreadStart(SendMail));
t.Start();


dove SendMail è il metodo che verrà eseguito nel Thread myThread anziché in quello principale e dovrà contenere il codice per inviare la Mail.

Ciao;)
Ultima modifica effettuata da Black Shadow 13/04/09 7:53
aaa
13/04/09 17:55
Luk3
Mi da un eccezione sull'IF che controlla la lunghezza del testo in ogni textbox:

        public void invio()
        {
            if (textBox1.Text.Length == 0 && textBox2.Text.Length == 0)
            {
                MessageBox.Show("Please Fill The \"From\" And The \"To\" Field.", "Missing", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;  
            }
            if (textBox1.Text.Length == 0)
            {
                MessageBox.Show("Please Fill The \"From\" Field.", "Missing", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            if (textBox2.Text.Length == 0)
            {
                MessageBox.Show("Please Fill The \"To\" Field.", "Missing", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            progressBar1.Value = 0;
            progressBar1.Minimum = 0;
            progressBar1.Maximum = Convert.ToInt32(comboBox2.SelectedItem.ToString());
            int nom = Convert.ToInt32(comboBox2.SelectedItem.ToString());
           
            for (int i = 0; i <= nom; i++)
            {
                try
                {
                    this.Title = "UFO Mail - Sending...";
                    Cursor = Cursors.Wait;
                    MailMessage Msg = new MailMessage();
                    Msg.From = new MailAddress(textBox1.Text.ToString());
                    Msg.To.Add(new MailAddress(textBox2.Text.ToString()));
                    Msg.Subject = textBox3.Text.ToString();
                    Msg.Body = richTextBox1.Document.ToString();
                    Msg.IsBodyHtml = true;
                    SmtpClient Smtp = new SmtpClient(comboBox1.SelectedItem.ToString());
                    Smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    NetworkCredential Credential = new NetworkCredential();
                    Smtp.UseDefaultCredentials = false;
                    Smtp.Credentials = Credential;
                    Smtp.Send(Msg);
                    progressBar1.Value = +1;
                    if (progressBar1.Value == nom)
                    {
                        MessageBox.Show("Message Sent!", "Sent", MessageBoxButton.OK, MessageBoxImage.Information);
                        this.Title = "UFO Mail";
                        Cursor = Cursors.Arrow;
                        progressBar1.Value = 0;
                    }
                }
                catch
                {
                    MessageBox.Show("Houston, We Have a Problem!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    this.Title = "UFO Mail";
                    Cursor = Cursors.Arrow;
                    progressBar1.Value = 0;
                    return;
                }
            }
        }
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Thread myThread = new Thread(new ThreadStart(invio));
            myThread.Start(); 
        }
aaa
13/04/09 20:16
theprogrammer
Non puoi accedere direttamente ai controlli da un secondo thread.

E' una problematica nota ... la soluzione e' indicata dalla stessa Microsoft ....

Una soluzione

forum.masterdrive.it/articoli-visual-basic-net-36/accedere-controlli-form-diverso-thread-17282/
aaa
14/04/09 7:28
Luk3
Qualcuno me lo spiega in C#?
aaa
14/04/09 9:08
Il Totem
Smettiamola con questa discriminazione :D C# è come vb.net, e vb.net come c#. Ho imparato c# senza mai leggere niente, solo vedendo i codici di Luk3 (e qualche centinaio di altre fonti) XD Ora facciamo il contrario, eh?
aaa
14/04/09 9:30
Luk3
Postato originariamente da Il Totem:

Smettiamola con questa discriminazione :D C# è come vb.net, e vb.net come c#. Ho imparato c# senza mai leggere niente, solo vedendo i codici di Luk3 (e qualche centinaio di altre fonti) XD Ora facciamo il contrario, eh?


:rotfl:
Ma comunque se qualcuno mi spiega come risolverlo in modo più facile di come lo dice la :asd:
aaa
14/04/09 9:42
ruggy94
Postato originariamente da Luk3:

Postato originariamente da Il Totem:

Smettiamola con questa discriminazione :D C# è come vb.net, e vb.net come c#. Ho imparato c# senza mai leggere niente, solo vedendo i codici di Luk3 (e qualche centinaio di altre fonti) XD Ora facciamo il contrario, eh?


:rotfl:
Ma comunque se qualcuno mi spiega come risolverlo in modo più facile di come lo dice la :asd:

Perchè ti sembra così difficile?? Hai un source pronto :pat:
aaa
14/04/09 14:42
Luk3
Postato originariamente da ruggy94:

Postato originariamente da Luk3:

Postato originariamente da Il Totem:

Smettiamola con questa discriminazione :D C# è come vb.net, e vb.net come c#. Ho imparato c# senza mai leggere niente, solo vedendo i codici di Luk3 (e qualche centinaio di altre fonti) XD Ora facciamo il contrario, eh?


:rotfl:
Ma comunque se qualcuno mi spiega come risolverlo in modo più facile di come lo dice la :asd:

Perchè ti sembra così difficile?? Hai un source pronto :pat:


Non capisco la roba scritta così!
aaa