Does each DSN need to be in a separate thread?
- , Thread, , DSN, . , IEmailService :
public interface IEmailService
{
void SendEmailsToValidAddresses();
}
:
public class MultipleSourcesEmailService : IEmailService
{
private IEnumerable<IDatabaseSource> databases;
public EmailService(params IDatabaseSource[] sources)
{
databases = new List<IDatabaseSource>(sources);
}
public void SendEmailsToValidAddresses()
{
foreach(var database in databases)
{
var emailAddresses = database.SelectAllEmailAddresses();
ValidateAndSendEmailsTo(emailAddresses);
}
}
public void ValidateAndSendEmailsTo(IEnumerable<string> emailAddresses)
{
...
}
}
, , IEmailService. , SingleSourceEmailService MultipleSourceEmailService , , .
, EmailService, , SendEmails - , , EmailService, DSN, , : MultiThreadedMultipleSourceEmailService, IEmailService .