2013-05-18 162 views
0

我正在開發一個web應用程序,在那裏發送電子郵件到數據網格中的選定候選電子郵件ID。我正在使用System.Net.Mail命名空間中的應用程序。當我發送郵件給候選人然後郵件類返回響應。所以我想刺激我的web應用程序的後臺進程,並顯示處理圖像,直到所有郵件發送成功。可以幫助我解決這個問題嗎?如何在asp.net web應用程序中實現後臺進程

+1

我建議你使用async/await來異步處理電子郵件的發送。你也可以使用ThreadPool.QueueUserWorkItem(YouMethodToSendEmails)方法或Thread類。完成後,顯示彈出消息有關電子郵件的狀態。你可以做的另一件事 - 創建一個帶有標誌的枚舉,例如(Busy/Idle),並在你的異步方法中設置這個標誌。根據它的狀態,你可以顯示加載圖片。 –

+0

嗨伊戈爾洛佐夫斯基。謝謝你能給我一個鏈接,顯示這個 – SANDEEP

回答

0

執行此操作的方法很多。

只需使用loader(.gif)圖像在asp.net中創建AJAX模式彈出窗口,然後在SmtpClient的Send()方法之前顯示它。見下面的僞代碼: -

SmtpClient mSmtpClient = new SmtpClient(); 
modalPopUp.Show(); 
mSmtpClient.Send(mMailMessage); 
modalPopUp.Close(); 

注意:不要忘記關閉它在catch塊也。

+0

演示代碼嗨Mukesh Sakre thanks.its權利,但在發送郵件後,它給出了迴應,所以我怎麼可以實施後臺進程 – SANDEEP

+2

此代碼將永遠不會工作。 – Dusan

+1

杜桑是正確的,這段代碼將永遠不會工作,因爲服務器不會將響應返回給客戶端,直到執行完所有事情,所以基本上,彈出窗口將永遠不會顯示。 – Icarus

0

有一些方法的嗡嗡聲。你可以通過ajax來做到這一點。

  • 取一個div與gif圖像。
  • 隱藏這個div initailly
  • 當u點擊提交按鈕,顯示這個div
  • 背景(在你的CS代碼),實現郵件發送。
  • 所有的郵件發送完畢後,你得到響應,再次隱藏div。

這裏是簡單的代碼在前端顯示進度。在你的asp.net頁面的後端做郵件發送的東西...

<script> 
$(document).ready(function() { 
    $("#click").click(function() { 
     $("#loader").show(); 
     $.ajax({ 
      url: '/Home/SendMails/', 
      type: 'POST', 
      success: function (msg) { 
       $("#loader").hide(); 
      } 
     }); 
    }); 
}); 
</script> 

<div id="1"></div> 
<input type="submit" id="click" value="Click" /> 

<div id="loader" style="display:none"> 
    Sending Mails.... 
    <img src="../../Images/ajax-loader.gif" /> 
</div> 
相關問題