1

以下不编译。这适用于4.0aspx WebForms 页面中的异步调用。

var task = Task.Factory.StartNew(() => Thread.Sleep(100));
var pat = new PageAsyncTask(task); //Doesn't compile, no such signature.
Page.RegisterAsyncTask(pat);

由于我无法使用所有不相关的 4.5 材料,谷歌搜索让我失望了。我的意思是,我不能使用 4.5。

如果我只使用没有 RegisterAsyncTask 的任务,我会收到警告说 WebForms 不支持裸任务,或者它挂起。

4

1 回答 1

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);

于 2016-02-25T17:01:22.773 回答