Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails
Public Function SendEmail(email As String, bodystuff As String) As Task Dim smtp As New SmtpClient("webmail.databarracks.com") Dim from As New MailAddress("email@example.com", "Info", System.Text.Encoding.UTF8) Dim [to] As New MailAddress(email) Dim message As New MailMessage(from, [to]) message.Body = "The message I want to send is to this <b>contact: " & vbCrLf & bodystuff & "</b>" message.IsBodyHtml = True message.BodyEncoding = System.Text.Encoding.UTF8 message.Subject = "The subject of the email" message.SubjectEncoding = System.Text.Encoding.UTF8 ' Set the method that is called back when the send operation ends. 'AddHandler smtp.SendCompleted, AddressOf smtpClient_SendCompleted Return smtp.SendMailAsync(message) End Function Public Sub StartEmailRun() Try Dim sWatch As New System.Diagnostics.Stopwatch() sWatch.Start() Dim po As New ParallelOptions() 'Create a cancellation token so you can cancel the task. _cancelToken = New CancellationTokenSource() po.CancellationToken = _cancelToken.Token 'Manage the MaxDegreeOfParallelism instead of .NET Managing this. We dont need 500 threads spawning for this. po.MaxDegreeOfParallelism = System.Environment.ProcessorCount * 2 Dim v As Long = 0 Parallel.ForEach(contacts.Cast(Of Object), po, Function(row) Return SendEmail(row.Email.ToString, row.Name.ToString) End Function) 'Here I would like to update my property to True when the above loop is complete?? MyProperty = True sWatch.Stop() Timing = sWatch.ElapsedMilliseconds Catch ex As Exception MsgBox(ex.ToString) End Try End Sub
Join the community of 500,000 technology professionals and ask your questions.
Connect with top rated Experts
18 Experts available now in Live!