谁能解释下面的代码,尤其是这一行: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/