Back to "Molto semplice one...come fare una chiamata multiprocessionale in un semplice passo"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

Imported mostlylucidcouk

Molto semplice one...come fare una chiamata multiprocessionale in un semplice passo

Tuesday, 06 July 2004

Ho la tendenza a dimenticare che le persone non sanno necessariamente tutto ( nel counselling l'abbiamo chiamata " frammentazione contextuale " - fondamentalmente bilanciando il vostro modo di pensare con quello della persona con cui siete consultati ' con questo in mente). qui , è una cosa semplice che ho dimenticato molti strumenti non so ' come chiamare un metodo asinchronamente, e.g., come mandare un email senza bloccare il filo di un ASP. pagina NET? Beh, , . NET lo rende veramente facile da fare.

Quindi , probabilmente sapete che mandare email in ASP .NET è facile.

usando System;

usando il sistema.WebM SK1Mail;

namespace ExtraControls

{

///

/// Descrizione sommistica per MailSender.

///

MailSender di classe pubblica

{

vuoto pubblico SendMail(string fromAddressM SK1string toAddress , string subjectLine,string messageTextMSC4

{

SmtpMail.SendM SK1fromAddress,toAddress ,subjectLineMST4messageTextMSC5

}

}

}

Destra, quindi questo manda all'host locale, semplice emailM SK2 come si fa questo AsincronoMSC3

usando System;

usando il sistema.WebM SK1Mail;

namespace ExtraControls

{

///

/// Descrizione sommistica per MailSender.

///

MailSender di classe pubblica

{

vuoto pubblico Main(string fromAddressM SK1string toAddress , string subjectLine,string messageTextMSC4

{

SendMailDelegate del = nuovo SendMaildelegateM SK1SendMail);

Richiamo AsyncCallback = nuovo Richiamo asyncM SK1EndSendMail);

IAsyncResult ar = del.StartInvokeM SK2fromAddressMSC3toAddress

}

vuoto pubblico EndSendMail(IAsyncResult ar)

{

SendMailDelegate del = (SendMailDelegate)arM SK3AsyncStateMSC4

provare

{

del.EndInvoke(arM SK2

}

Catturare

{

//O gestire l'eccezione qui...

throw;

}

}

delegato pubblico vuoto SendMailDelegate(string fromAddressM SK1string toAddress , string subjectLine,string messageTextMSC4

vuoto pubblico SendMail(string fromAddressM SK1string toAddress , string subjectLine,string messageTextMSC4

{

SmtpMail.SendM SK1fromAddress,toAddress ,subjectLineMST4messageTextMSC5

}

}

}

Giusto, quindi un po' di cose sono state aggiustate qui - vedrete che c'è una delegata chiamata SendMailDelegate - che essenzialmente agisce come indicatore di metodo che vi permette di attivare il metodo SendMail su un nuovo threadM SK5 L'attuale 'firingMSC7 avviene usando la delMST8BeginInvokeMSL9 lineaMSR10 l'AsyncCallback specificato prima di quella linea ci dà un collegamento a un metodo che si attiva dopo che il metodo sendmail è terminato M- qui potete gestire gli errori come ho fatto ioMSSK12ho fatto notareMSV13 questoMSS14 è anche dove potete chiamare EndInvocation per il delegatoMS.

Ora, non è necessario usare il metodo EndSendMail per chiamare la 'EndInvoke' - ma è la migliore pratica di rivelare le leakenze potenziali della memoriaMSC4 Così cheM SK5s itMST6 ogni volta che volete fare qualcosa in modo asincrono, che's l'essenziale schema che voi\MST8 volete usare mST9ci sono altri, come iniziare nuovi thread e così via.

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.