c# - 解释一下这个语句 += () => 的用途以及它是如何工作的

标签 c#

谁能解释下面的代码,尤其是这一行:starter += () => { .我不确定它是如何工作的以及整个代码是如何工作的。

private void RunNetworkCheckThread()
{
    ThreadStart starter = CheckNetwork;

    starter += () =>
    {
        if (!_withNetwork)
        {
            RunNetworkCheckThread();
        }
        else
        {
            StartDrive();                   
        }
    };

    threadNetwork = new Thread(starter) { IsBackground = true }; 
    threadNetwork.Start();
}

最佳答案

ThreadStart 启动器是委托(delegate)的。 CheckNetwork 是一个目标方法。以下也是目标方法

() =>
    {
        if (!_withNetwork)
        {
            RunNetworkCheckThread();
        }
        else
        {
            StartDrive();                   
        }
    };

starter += () - 这就是让 starter 多播委托(delegate)的原因
How to: Combine Delegates

这一行 threadNetwork.Start() 在同一个线程中调用两个委托(delegate)。所以 CheckNetwork 和 Action 方法正在同一个新线程中执行。

关于c# - 解释一下这个语句 += () => 的用途以及它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52206316/

相关文章:

c# - 标题的正则表达式匹配

javascript - 将 C# Cryptography.Rijndael 加密转换为 Javascript(首选 crypto-js)

c# - 确定方法接受的参数数量

c# - 如何检查请求的查询字符串中是否提供了 'unknown' 参数?

c# - 为什么从带有 where 子句的抽象类派生的类不能强制转换为它的最低公共(public)类

c# - 如何在微服务之间共享领域事件方案?

c# - 如何增加行列式进度条的粗细?

C# ASP.NET WebApi 路由模板不适用于 uri 参数

c# - 如何使用 TcpListener/Client 通过 tcp 发送文件? SocketException问题

c# - SqlDataReader 返回 x 行,但 SQL 查询返回 y 行