以下内容无法编译。这适用于 4.0 , aspx WebForms页面中的异步调用。
var task = Task.Factory.StartNew(() => Thread.Sleep(100));
var pat = new PageAsyncTask(task); //Doesn't compile, no such signature.
Page.RegisterAsyncTask(pat);
Google搜索失败了,因为我无法使用所有不相关的4.5素材。我的意思是,我不能使用4.5。
如果我只使用没有RegisterAsyncTask的Task,我会收到一个警告,即WebForms不支持裸任务,或者它挂起。
答案 0 :(得分:1)
你快到了。不是使用任务构造PageAsyncTask,而是使用返回任务的方法构造它,如下所示:
var pat = new PageAsyncTask(() => Task.Run(() => Thread.Sleep(100)));
对于.Net 4.0:
Action a = () => Thread.Sleep(100);
var p = new PageAsyncTask((s, e, cb, o) => a.BeginInvoke(cb, o), a.EndInvoke, null, null);