Task.Run( new Action (() => { GetPLCValue();} ) ); 这个不知道是什么意思?

F羊 2021-03-02 01:51:12
下面有一段代码,其中一个不知道是什么意思, Task.Run( new Action (() => { GetPLCValue();} ) );
不知道这个知道点在哪里查找。我看了不像是 lambda表达式.



private void button1_Click(object sender, EventArgs e)
{
if (this.button1.Text == "连接")
{
//实例化socket
tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//IP4,字节流,TCP
EndPoint EP = new IPEndPoint(IPAddress.Parse(this.txt_IP.Text), int.Parse(this.txt_Port.Text));
try
{
tcpClient.Connect(EP);
}
catch (Exception ex)
{
MessageBox.Show("连接失败:" + ex.Message);
return;
}
MessageBox.Show("连接成功");
this.button1.Text = "关闭";
Task.Run( new Action (() => { GetPLCValue();} ) ); ////就是这句??????????????
}
else
{
tcpClient?.Close();
this.button1.Text = "连接";
}
}
...全文
1394 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 datafansbj 的回复:
Task.Run:执行一个异步的任务(即在另一线程执行,不影响当前代码继续执行) new Action:执行的异步任务在这个委托里定义 () => { ... }:匿名函数,即由系统内部自动起名字的函数,作用域仅限本函数体内 综合来说,就是执行一个异步任务,任务内容是执行一段代码,这段代码内容是:GetPLCValue(); 这个语句有些啰嗦,下列是简化过的结果,与原语句等价: Task.Run( () => { GetPLCValue(); } ) ;
学习了
正怒月神 2021-03-02
  • 打赏
  • 举报
回复
异步跑了一个 Action 委托。
飞天凤凰601 2021-03-02
  • 打赏
  • 举报
回复
Task.Run( new Action (() => { GetPLCValue();} ) ); ////就是这句?????????????? ----------- 这句写多了,应该是这样:new Action 可以省略 Task.Run(()=>{GetPLCValue();}); 就是开起一个线程,运行GetPLCValue()方法 ()=>{} 是不带参数的匿名函数
Bridge_go 2021-03-02
  • 打赏
  • 举报
回复
那还不如一步到位呢:Task.Run(GetPLCValue);
datafansbj 2021-03-02
  • 打赏
  • 举报
回复
Task.Run:执行一个异步的任务(即在另一线程执行,不影响当前代码继续执行)
new Action:执行的异步任务在这个委托里定义
() => { ... }:匿名函数,即由系统内部自动起名字的函数,作用域仅限本函数体内

综合来说,就是执行一个异步任务,任务内容是执行一段代码,这段代码内容是:GetPLCValue();

这个语句有些啰嗦,下列是简化过的结果,与原语句等价:
Task.Run( () => { GetPLCValue(); } ) ;
石岩Maple 2021-03-02
  • 打赏
  • 举报
回复
这叫委托啊啊

111,089

社区成员

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

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

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