我創建了一個任務如下:ExportTask = Task.Factory.StartNew(() => ExcelExport(rs, ReportCenter));在 ExcelExport() 方法中,我喜歡運行一個語句來保存 excel 電子表格,但它需要在主線程上:workbook.SaveAs(String.IsNullOrWhiteSpace(AppSettingsUtils.GetString("ExportExcelFileName")) ? "Export.xlsx" : AppSettingsUtils.GetString("ExportExcelFileName"), Response, ExcelDownloadType.PromptDialog, ExcelHttpContentType.Excel2013);就此而言,我很好奇如何在任務中也從這樣的語句中獲取值:ReportCenter = HttpContext.Current.Profile.GetPropertyValue("ReportCenter");似乎有很多關于 Windows 窗體的信息,但很難找到 Web 窗體。我怎樣才能做到這一點?
1 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
Task.Factory.Start將啟動一個新的Thread并且因為它 HttpContext.Context是本地的thread它不會自動復制到新線程,所以你需要手動傳遞它:
var task = Task.Factory.StartNew(
state =>
{
var context = (HttpContext) state;
//use context
},
HttpContext.Current);
- 1 回答
- 0 關注
- 87 瀏覽
添加回答
舉報
0/150
提交
取消