task .run必须是 4.5框架,4.0里没有?

色郎中 2014-01-26 11:00:48
//在另一个线程中运行客户端Socket
Task.Run(() =>
{
Task.Delay(1000).Wait();
ClientSocket(eip, eport);
});



错误 1 “System.Threading.Tasks.Task”并不包含“Run”的定义

...全文
1742 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2014-01-28
  • 打赏
  • 举报
回复
Task.Delay(1000)是Thread.Sleep(1000);的变种,算是一种语法糖,实际编译器在处理该函数的时候,会有其它小动作,目的是为了让这个延迟变为异步而不是同步。所谓异步延迟,意思是在这个延迟时间内,当前线程是不会阻塞的,可以响应其它消息循环,在这个延迟后面的所有代码能够自动封装到异步回调中处理。 如果你用不着那么高级的功能,完全没必要用4.5里面的async功能
erictang2003 2014-01-28
  • 打赏
  • 举报
回复
new Task(()=> { Thread.Sleep(1000); do somthing(); }); Thread.Sleep(1000); task.Start(); task.Wait();
色郎中 2014-01-26
  • 打赏
  • 举报
回复
4.5 需要VS2012, 而2012 需要WIN7以上系统,我是XP 4.0框架下,如何变通使用 上面的方法呢?
bdmh 2014-01-26
  • 打赏
  • 举报
回复
是4.5有的
Regan-lin 2014-01-26
  • 打赏
  • 举报
回复
你要的是线程延迟么?是sleep是可以的
jiaoshiyao 2014-01-26
  • 打赏
  • 举报
回复
Thread啊
色郎中 2014-01-26
  • 打赏
  • 举报
回复
引用 3 楼 zq06640 的回复:
Task.Factory.StartNew (() => { Task.Delay(1000).Wait(); ClientSocket(eip, eport); });
Task.Delay(1000).Wait();
也提示 错误 1 “System.Threading.Tasks.Task”并不包含“Delay”的定义 用这个替换可否
 //Thread.Sleep(1000);
zq06640 2014-01-26
  • 打赏
  • 举报
回复
Task.Factory.StartNew (() => { Task.Delay(1000).Wait(); ClientSocket(eip, eport); });

111,044

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧