我创建了一个任务如下: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 关注
- 62 浏览
添加回答
举报
0/150
提交
取消