无法开始异步操作Async-异步操作只能在异步处理程序或模块中开始

广告:阿里云新人专场

System.InvalidOperationException: 现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始。如果此异常在执行 Page 时发生,请确保 Page 标记为 <%@ Page Async="true" %>。此异常也可能表明试图调用“异步无效”方法,在 ASP.NET 请求处理内一般不支持这种方法。相反,该异步方法应该返回一个任务,而调用方应该等待该任务。
在 System.Web.AspNetSynchronizationContext.OperationStarted()
在 System.Net.WebClient.DownloadFileAsync(Uri address, String fileName, Object userToken)
在 Readpaper.WebClientDownfile.Downbkfile(String webfile, String& datafile) 位置 E:\aspnet2.0\WebClientDownfile.cs:行号 91


解决:用多线程来代替设置Async="true"

string d1 = "";
string f1 = "http://www.53bk.com/bk.json";

// Thread thread = new Thread(new ParameterizedThreadStart(wd.Downbkfile)); //可以带参数 此方法也可以正常用,旧方法
// thread.Start((object)f1); //可以带参数 此方法也可以正常用,旧方法
WebClientDownfile wd1 = new WebClientDownfile();
Thread thread = new Thread(new ThreadStart(() => wd1.Downbkfile(f1,out d1))); //新方法
thread.Start();
thread.Join();
thread.Abort(); //线程启动马上关闭

广告:阿里云采购优惠专区

相关内容

编辑:Admin 时间:2022/5/31 18:24:25 阅览:28   返回    
异步操作
Async
扫描关注53BK报刊官网
扫描关注阅速公司微信