2012-03-16 6 views
1

私はASP/C#アプリケーションから電子メールを送信するために、火災と忘れのパターンを使用することを検討しています。私は前にパターンを使用しました。この記事の説明とほとんど同じです。C#火災と忘れての考察

http://microsoftmentalist.com/2012/02/02/asp-netcall-synchronous-method-asynchronously-asp-net-fire-and-forget/

すべての非常にシンプルなものが、私は実際にパフォーマンス上の考慮事項について知っておく必要があります。私は電子メールを送信する必要があるたびに新しいスレッドを作成し続けるだけで、それを管理するためのフレームワークを信頼していますか?または、私は手作業でスレッドをプールに戻す方法がありますか?

+0

リンクが不良です。 –

+0

スティーブンCもここでいいです:https://blog.stephencleary.com/2014/06/fire-and-forget-on-asp-net.html – Fildor

答えて

5

アプリケーションのThreadPoolを無効にしないでください。代わりに、複数のスレッドを1つのプロセスで作成する場合は、SmartThreadPoolを使用してください。火災があります&記事に例がありません。

しかし...メールをオフにポップする最も簡単な方法は、QueueUserWorkItemを使用することです:

ThreadPool.QueueUserWorkItem(o => SendEmail(emailTo, emailFrom, emailSubject, emailBody)); 

あなたは、スレッドプールに戻ったスレッドを置くことを心配する必要はありません。スレッドプール管理は、ThreadPoolクラスを使用するときにフレームワークを介して自動的に処理されます。

2

理想的には、ThreadPoolを使用して作業項目を送信します。それはあなたのアプリケーションがスレッドプールを使用しているあなたはを提供されたリンクに:)

1

コードを、それをめちゃくちゃ応答と安定性を維持し、開発者のないよう適切なプーリングとスレッドの管理、あなたは離れて抽象化する必要はありませんでしょうそれを気にする。それはプールからのスレッドを使用し、終了後にそのスレッドをプールに戻します。

関連する問題