C#/ VB.Net任务vs线程与BackgroundWorker
我有“谷歌搜索”但仍然与任务,线程和后台工作者混淆…..
>“Task是在当前线程上运行的高级API”是否正确? 对不起我的游泳池英语并感谢您的帮助……! 解决方法
1)否,默认情况下,任务在线程池线程上运行.但是,您可以提供另一个可以以不同方式运行任务的调度程序.
3)默认优先级没有差异. BackgroundWorker还在线程池线程上运行. 4)使用 Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse,request.EndGetResponse,null) .ContinueWith( t => { using (var response = (HttpWebResponse)t.Result) { // Do your work } },TaskScheduler.FromCurrentSynchronizationContext() ); 使用TaskScheduler.FromCurrentSynchronizationContext可确保在当前线程上调用ContinueWith中的回调.因此,如果在UI线程上创建任务,则将在后台检索响应,然后在UI线程上处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |