2009-07-27 22 views
0

我在IIS7上在IIS 7中調用void方法並且不等待它們返回

我在頁面上有一個按鈕。

當我點擊它時,會啓動一個調用void方法的新線程,該方法需要20到30分鐘才能完成。

問題是被調用的void方法在控件返回給瀏覽器後立即停止運行。 (至少它似乎)

protected void _Build_Click(object sender, EventArgs e) 
     { 
      if (Build.IsBuilding) return; 
      var t = new Thread(Build.DoBuild); 
      t.Start(); 
     } 

它應該這樣或應該控制返回到瀏覽器並繼續? 是否有另一種方法來調用一個方法,而不是等待它完成?

+0

你爲什麼說它似乎停止運行?你觀察到了什麼?你想在線程中做什麼? – Guffa 2009-07-27 23:36:34

回答

1

我想你的方法被腳本超時停止。有不同的方法來修復它:

  1. 增加腳本超時。我不會推薦這個,因爲長操作會鎖定應用程序池線程,並且無法處理其他請求。但你可以試試:) http://www.devx.com/vb2themax/Tip/18803
  2. 使用異步方法。 http://msdn.microsoft.com/en-us/magazine/cc163725.aspx
  3. 工作流程http://msdn.microsoft.com/en-us/magazine/2009.01.longrunwf.aspx
  4. 與Ajax請求的Web服務和查詢服務檢查執行情況,執行你的進程。