簡體   English   中英

ASP.Net / C#4.5 —異步處理—異步等待

[英]ASP.Net / C# 4.5 — Async Processing — Async Await

我正在尋找什么方向,這是我應該走的最佳路線。 我已經發布了幾次,討論了一些推薦的設計模式。 根據我要完成的工作,我還沒有真正得到好的指導。 我是異步處理新手,並且希望您能向正確的方向提出一些建議。 到目前為止,在我以前的一篇文章中,我被稱為無知的,因為我要求提供代碼示例。 請理解我一直在閱讀所有內容,並嘗試着可以在互聯網上找到的所有內容。 不用說,我可以采用很多不同的方向,而且我不確定哪個是最好的。

我將在較高的級別上解釋我想做的事情,如果有任何人可以向我指出正確的方向來幫助我,我將不勝感激。 另外,如果有人可以指出一些代碼示例,我也很樂意。 我不介意閱讀這些材料,但是如果我能看到遵循其說明的代碼,那將變得更加有意義。 我發現的大多數文檔都有代碼示例或部分代碼示例,並且我一直在盡力嘗試使用發現的功能來滿足我的特定需求。 到目前為止,還沒有太大的運氣。 我承認,當涉及到ASYNC處理時,我想我很無知。 :)

無論如何,這就是我要完成的工作。 我遺漏了我可能考慮使用的任何特定技術,以避免爭論我發布的內容是否過時或落后於時代。 我正在尋找一個朝着正確方向發展的觀點,並且我對此開放。 我只需要使這個工作。

這是我需要做的基礎

  1. 我有一個正在使用的ASP.Net網站“項目”。
  2. 我有一個屏幕,用於使用Active Reports 7打印報告。
  3. 我的任務是允許用戶單擊“打印/預覽”按鈕並啟動報告處理。
  4. 運行報表時,我需要使用戶能夠單擊“取消”按鈕並終止處理並返回到報表屏幕。 (因此,在處理報告的這段時間內,UI需要響應,以便用戶可以單擊“取消”按鈕。)
  5. 在處理報告時,我需要顯示一條彈出消息以指示該報告正在運行。
  6. 報告完成處理后,我需要隱藏此彈出消息,以向用戶指示報告已完成。 然后,我需要打開要由用戶查看的報告。 當前,這是我們在報表處理代碼期間准備的javascript函數,它將打開一個新窗口並調用報表查看器。 (因此,在報告完成后,我需要能夠調用javascript函數。)

如果有人能指出我正確的方向,我將非常感激。 我不介意進行腿部工作和閱讀大量文檔。 我只需要能夠知道我正在尋找的內容即可為我提供上述功能。 就像我之前說的,不管是否了解,如果我可以獲得一些示例工作代碼(不要求任何人為我編寫代碼,只需我可以逐步通過一些代碼來幫助理解正在發生的事情),它將大有幫助。

預先感謝您的時間和考慮。

因為您希望在服務器端進行一些操作以及UI響應並顯示進度。 顯示事件的進度。 我建議使用Signalr.Net。

http://signalr.net/

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

這是一個實時的Web api,您可以使用它創建一個具有“ ProcessReport”和“ cancelProcessing”功能的集線器,在單擊該按鈕時打開連接時可以從javascript調用它,並顯示帶有取消按鈕的進度彈出窗口。 在操作完成后,在js中用集線器注冊一個客戶端事件,說“ updatestatus”,可以從服務器調用該事件以關閉彈出窗口並最終關閉信號器連接。 同樣,在彈出的取消單擊中,您可以再次調用集線器功能cancelProcessing並執行取消操作,並使用updateStatus進行回調。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM