首页 > 解决方案 > 解释一下这个语句 += () => 的用途以及它是如何工作的

问题描述

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

private void RunNetworkCheckThread()
{
    ThreadStart starter = CheckNetwork;

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

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

标签: c#

解决方案


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

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

starter += () - 这就是让 starter 多播委托的原因 如何:组合委托

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


推荐阅读