c# - 解释一下这个语句 += () => 的用途以及它是如何工作的
问题描述
谁能解释下面的代码,尤其是这一行:starter += () => {
. 我不确定它是如何工作的以及整个代码是如何工作的。
private void RunNetworkCheckThread()
{
ThreadStart starter = CheckNetwork;
starter += () =>
{
if (!_withNetwork)
{
RunNetworkCheckThread();
}
else
{
StartDrive();
}
};
threadNetwork = new Thread(starter) { IsBackground = true };
threadNetwork.Start();
}
解决方案
ThreadStart 启动器是委托的。CheckNetwork 是一个目标方法。以下也是目标方法
() =>
{
if (!_withNetwork)
{
RunNetworkCheckThread();
}
else
{
StartDrive();
}
};
starter += () - 这就是让 starter 多播委托的原因 如何:组合委托
这一行 threadNetwork.Start() 在同一个线程中调用两个委托。所以 CheckNetwork 和 Action 方法正在同一个新线程中执行。
推荐阅读
- ethereum - 使用 web3 的 Object.exports.toBuffer 的类型无效
- pandas - 如何遍历 dataFrame 中的 value_counts?
- sql - Impala - 如何查询随时间销售的产品的累积不同数量?
- python - 无法将 BigQuery 数据导入 GCP AI Notebook
- python - Selenium Python:Element Click 或 .send_keys 在此网页上均不起作用
- sql - Oracle SQL 多值参数 - ORA-00920:无效的关系运算符
- reactjs - 如何按数组/对象在产品列表中显示产品项目
- javascript - 如何在另一页上查看一个页面上的图像?
- java - java pgp用asc文件中的公钥加密文件
- css - .css 未加载,因为它的 MIME 类型“text/html”不是“text/css”。和 SyntaxError:预期的表达式,得到 '<'