Cloudflare防火墙拦截谷歌爬虫|导致收录失败怎么解决?
许多站长发现网站突然从谷歌搜索结果中“消失”,背后很可能是Cloudflare防火墙误拦截了谷歌爬虫(Googlebot),导致搜索引擎无法正常抓取页面。
由于Cloudflare默认的防护规则较为严格,尤其是针对高频访问的爬虫IP,稍有不慎就会触发防火墙拦截,轻则延迟收录,重则导致关键词排名断崖式下跌。
本文将通过4个实操步骤,从排查拦截原因、调整防火墙基础配置,到精准设置爬虫白名单,手把手解决因Cloudflare规则导致的谷歌收录问题。
先确认是不是真的被拦截了
很多站长一发现网站未被谷歌收录,就急着改配置,但其实Cloudflare可能并没有拦截爬虫,也可能是其他SEO问题(比如内容质量、robots.txt限制)。
先通过以下方法验证拦截是否真实存在,避免盲目操作导致更复杂的故障。
Google Search Console抓取错误报告
- 路径:进入GSC后台 → 左侧“索引” → “覆盖范围” → 查看“已排除”页面中的“抓取失败”记录。
- 关键指标:若错误类型显示“已拒绝”(403/5xx)或“已重定向”,可能是防火墙拦截。
对比Cloudflare防火墙日志
操作:登录Cloudflare → 进入“安全” → “事件” → 筛选时间范围,搜索“User-Agent”包含“Googlebot”的请求。
重点看状态:
- Block:明确拦截(需放行)
- Challenge:触发验证码(可能影响爬虫效率)
- JS Challenge:浏览器检查(可能导致移动版爬虫失败)
使用谷歌官方测试工具
- 工具地址:https://search.google.com/search-console/inspect
- 输入被拦截的页面URL,点击“测试实际网址”,观察结果:
- 若显示“无法抓取”(Crawl blocked),结合下方详情中的HTTP响应码(如403)确认。
区分“验证码”和“完全拦截”
验证码挑战:爬虫收到CAPTCHA页面(返回200但内容为验证码),谷歌无法解析,导致收录失败。
完全拦截:直接返回403/5xx错误码,爬虫无法获取任何页面内容。
检查Cloudflare防火墙基础设置
Cloudflare的默认安全配置虽然保护了网站,但也可能“误伤”谷歌爬虫。
尤其是高频抓取行为容易被判定为攻击,导致爬虫被限流甚至拦截。
以下4项基础设置必须优先排查,简单调整即可大幅降低误封概率。
调整Security Level(安全等级)
- 问题:等级设为“高”或“极高”时,可能拦截30%以上的合法爬虫请求。
- 操作:进入Cloudflare控制面板 → “安全” → “设置” → 将“安全级别”调至“中”或“低”。
- 注意:调低后需观察攻击日志,可配合“自定义规则”精准拦截真实威胁。
关闭地区屏蔽中的误封选项
- 风险点:若开启“区域封锁”且屏蔽了北美、欧洲IP段,可能误封谷歌爬虫(Googlebot服务器主要位于美国)。
- 操作:进入“安全” → “WAF” → “区域” → 检查是否开启地区封锁,建议临时关闭或排除ASN15169(谷歌专用网络)。
关闭Under Attack Mode(红色盾牌图标)
- 影响:该模式强制所有访问者先验证身份(跳转5秒页面),但谷歌爬虫无法通过此验证,导致完全拦截。
- 操作:在Cloudflare控制台首页 → 找到“Under Attack Mode”开关 → 确认处于关闭状态。
禁用对搜索引擎的JS挑战
致命错误:开启“浏览器完整性检查”时,部分爬虫(尤其移动版Googlebot)因无法执行JS脚本而抓取失败。
操作:进入“安全” → “设置” → 找到“浏览器完整性检查” → 勾选“不对搜索引擎生效”。
补充:可针对User-Agent
包含Googlebot
的请求单独关闭JS挑战。
必须设置的防火墙规则白名单
单纯降低安全等级可能让网站暴露风险,更稳妥的方案是通过防火墙规则“精准放行”谷歌爬虫。
Cloudflare支持基于User-Agent、IP来源、ASN(自治系统号)等条件设置白名单。
User-Agent白名单(优先级最高)
规则作用:直接放行所有携带Googlebot
标识的请求,绕过防火墙检测。
操作路径:
Cloudflare控制台 → “安全” → “WAF” → “规则” → 创建新规则
- 字段:
User-Agent
→包含
→ 输入正则表达式:.*Googlebot.*
- 操作:选择“绕过”或“跳过”
注意:需同时匹配Googlebot-Image
(图片爬虫)、Googlebot Smartphone
(移动版)等变体。
ASN放行(防止伪造User-Agent)
必要性:恶意爬虫可能伪造Googlebot
的UA,需结合IP来源验证。
操作:在防火墙规则中添加条件:
- 字段:
ASN
→等于
→ 输入15169
(谷歌全球服务器专用ASN编号) - 操作:设为“允许”
验证工具:通过IPinfo查询任意IP的ASN归属。
导入Google官方IP段(终极防护)
数据源:使用谷歌官方发布的爬虫IP列表:https://developers.google.com/search/apis/ipranges/googlebot.json
操作:
- 下载JSON文件,提取所有IPv4/IPv6地址段
- 在Cloudflare防火墙规则中,设置“IP来源”匹配这些IP段,并设为“允许”
维护成本:需每季度手动更新一次IP库(谷歌会动态调整)。
为Googlebot设置速率限制例外
场景:若网站开启了“速率限制”(Rate Limiting),可能误判高频抓取为攻击。
操作:
- 进入“安全” → “WAF” → “速率限制规则” → 编辑现有规则
- 添加条件:
IP来源
在Googlebot IP段
内 → 选择“不应用此规则”
避坑提示:
- 规则优先级:确保白名单规则排在拦截类规则上方(Cloudflare按从上到下顺序执行)。
- 避免过度放行:若规则中同时包含
User-Agent
和ASN
条件,建议用“且”逻辑(而非“或”),防止被恶意请求利用。
验证是否修复成功
调整防火墙规则后,千万别急着等谷歌自动恢复!由于缓存延迟或规则冲突,可能出现“配置已改但爬虫仍被拦截”的情况。
以下方法可快速验证修复效果,避免因误判而错过最佳补救时机。
终端模拟Googlebot请求(最快验证)
命令:
curl -A "Googlebot/2.1" https://你的网站URL -I
关键指标:
返回HTTP/2 200
:抓取正常
返回403
或5xx
:拦截未解除
返回301/302
:检查是否因跳转规则导致爬虫循环
实时查看Cloudflare放行日志
操作路径:Cloudflare控制台 → “安全” → “事件” → 筛选条件:
- 动作:
Allow
- User-Agent:包含
Googlebot
- ASN:
15169
成功标志:5分钟内出现多条Googlebot的Allow
记录
Google官方抓取测试工具
工具:Google URL Inspection Tool:https://search.google.com/search-console/inspect
操作:
输入曾被拦截的URL → 点击“测试实际网址” → 查看“抓取状态”
通过条件:显示“已找到页面”且无“被robots.txt屏蔽”警告
监测移动版爬虫专用UA
特殊UA:Googlebot Smartphone
(移动版爬虫更易触发JS挑战)
验证方法:
在Cloudflare防火墙日志中搜索该UA
或用命令:
curl -A "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.606.0 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://你的网站URL -I
提交Sitemap后观察索引覆盖率
操作:在Google Search Console重新提交sitemap.xml
成功信号:
24小时内“已覆盖”页面数逐步上升
“排除”报告中相关错误减少
注意事项:
- 若使用CDN缓存,先清除Cloudflare缓存(路径:“缓存” → “配置” → “清除所有缓存”)
- 谷歌爬虫生效延迟:测试工具结果实时,但索引恢复需1-3天
- 规则优先级冲突:检查是否其他防火墙规则覆盖了白名单设置
防火墙规则调整后,爬虫访问量通常在6小时内回升,若流量未反弹,90%的问题出在验证环节的疏漏。善用
curl
和实时日志,精准锁定残留拦截点!
相关文章:
Cloudflare防火墙拦截谷歌爬虫|导致收录失败怎么解决?
许多站长发现网站突然从谷歌搜索结果中“消失”,背后很可能是Cloudflare防火墙误拦截了谷歌爬虫(Googlebot),导致搜索引擎无法正常抓取页面。 由于Cloudflare默认的防护规则较为严格,尤其是针对高频访问的爬虫IP&…...
3.3 掌握RDD分区
本实战任务旨在掌握Spark RDD 的分区操作,包括理解 RDD 分区的概念、作用、分区数量的确定原则以及如何通过自定义分区器来优化数据处理。通过创建一个 Maven 项目并编写 Scala 代码,实现了一个自定义的科目分区器 SubjectPartitioner,该分区…...
以项目的方式学QT开发(二)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
API 描述 函数原型 参数说明 push_back() 在 list 尾部 添加一个元素 void push_back(const T& value); value :要添 加到尾部的元 素 这个示例演示了如何创建 std::list 容器,并对其进行插入、删除和迭代操作。在实际应用中&am…...
linux备份与同步工具rsync
版权声明:原创作品,请勿转载! 文章目录 版权声明:原创作品,请勿转载! 实验环境介绍: 1.工具介绍 2.详细介绍 2.1 本地模式(用得少) 2.2 远程模式 2.3 守护进程模式…...
Ascend的aclgraph(九)AclConcreteGraph:e2e执行aclgraph
1回顾 前面的几章内容探讨了aclgraph运行过程中的涉及到的关键模块和技术。本章节将前面涉及到的模块串联起来,对aclgraph形成一个端到端的了解。 先给出端到端运行的代码,如下: import torch import torch_npu import torchair import log…...
2025 OceanBase 开发者大会全议程指南
5 月 17 日,第三届 OceanBase 开发者大会将在广州举办。 我们邀请数据库领军者与AI实践先锋,与开发者一起探讨数据库与 AI 协同创新的技术趋势,面对面交流 OceanBase 在 TP、AP、KV 及 AI 能力上的最新进展,深度体验“打破技术栈…...
【深度学习之四】知识蒸馏综述提炼
知识蒸馏综述提炼 目录 知识蒸馏综述提炼 前言 参考文献 一、什么是知识蒸馏? 二、为什么要知识蒸馏? 三、一点点理论 四、知识蒸馏代码 总结 前言 知识蒸馏作为一种新兴的、通用的模型压缩和迁移学习架构,在最近几年展现出蓬勃的活力…...
Java大师成长计划之第23天:Spring生态与微服务架构之服务发现与注册中心
📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4-turbo模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 在微服务架构中,服务发现…...
list简单模拟实现
成员变量迭代器(重点)ListIterator运算符重载begin、end 插入、删除inserterase头插、尾插、头删、尾删 operator->const_iterator拷贝构造operator析构函数完整代码 由于前面已经模拟实现了vector,所以这里关于一些函数实现就不会讲的过于…...
undefined reference to `typeinfo for DeviceAllocator‘
出现“undefined reference to typeinfo”链接错误的原因及解决方法如下: class DeviceAllocator { public:explicit DeviceAllocator(DeviceType device_type){};virtual void* allocate(size_t n) 0;virtual void deallocate(void* p) 0;~DeviceAllocator() d…...
动态规划问题 -- 多状态模型(买股票的最佳时机II)
目录 动态规划分析问题五步曲题目概述利用状态机推导状态转移方程式代码编写 动态规划分析问题五步曲 不清楚动态规划分析问题是哪关键的五步的少年们可以移步到 链接: 动态规划算法基础 这篇文章非常详细的介绍了动态规划算法是如何分析和解决问题的 题目概述 链接: 买股票的最…...
【落羽的落羽 C++】进一步认识模板
文章目录 一、非类型模板参数二、模板的特化1. 函数模板特化2. 类模板特化 三、模板的编译分离 一、非类型模板参数 模板参数可以分为类型参数和非类型参数。我们之前使用的都是类型参数,即出现在模板参数列表中,跟在class或typename之类的参数类型名称…...
Java爬虫能处理京东商品数据吗?
Java爬虫完全可以处理京东商品数据。通过Java爬虫技术,可以高效地获取京东商品的详细信息,包括商品名称、价格、图片、描述等。这些信息对于市场分析、选品上架、库存管理和价格策略制定等方面具有重要价值。以下是一个完整的Java爬虫示例,展…...
#跟着若城学鸿蒙# web篇-初探
前言 先看下官方介绍,这里总结了比较重要的几点Web组件基础:加载与渲染网页全面解析Web组件是现代应用开发中不可或缺的重要元素,它允许开发者在原生应用中无缝集成Web内容。本文将全面介绍Web组件的基本功能,包括多种内容加载方…...
Top-p采样:解锁语言模型的创意之门
Top - p采样 是什么:核采样:排序,累计到0.7,随机选择 在自然语言生成和大规模语言模型推理中,Top - p采样(又叫核采样,Nucleus Sampling)是一种基于累积概率的采样策略。 Top - p介…...
周赛好题推荐
这周周赛很有质量的,上了一个很有意思的数学题目,推了半天..... 给定一个区间[l,r],求出区间内所有满足x mod 2^i !k的所有正整数(最后全部进行异或) 首先我们不妨先算出[l,r]区间所有数字的异或,然后在算…...
【RabbitMQ】实现RPC通信的完整指南
文章目录 RPC 通信创建相关队列客户端代码声明队列发送请求接收响应完整代码 服务端代码设置同时只能获取一个消息接收消息完整代码 运行程序启动客户端启动服务端 RPC 通信 RPC (Remote Procedure Call), 即远过程调用。它是一种通过网络从远程计算机上请求服务,而…...
CK3588下安装linuxdeployqt qt6 arm64
参考资料: Linux —— linuxdeployqt源码编译与打包(含出错解决) linux cp指令报错:cp: -r not specified; cp: omitting directory ‘xxx‘(需要加-r递归拷贝) CMake Error at /usr/lib/x86_64…...
滑动窗口之二(优先队列)
原本滑动窗口的板子用的是数组和双指针模拟,我嫌麻烦还不好懂找了双端队列。但其实还是不太好使,比如今天的这道题就处理起来很麻烦。但是如果用优先队列的话就可以一直保证整个窗口是有序的,只需判断一下是否在窗口内即可。但是!…...
小刚说C语言刷题—1088求两个数M和N的最大公约数
1.题目描述 求两个正整数 M 和 N 的最大公约数(M,N都在长整型范围内) .输入 输入一行,包括两个正整数。 输出 输出只有一行,包括1个正整数。 样例 输入 45 60 输出 15 2.参考代码(C语言版) #include <stdio.h> …...
pytorch训练可视化工具---TensorBoard
一、目的:为什么使用 TensorBoard 调控模型 使用 TensorBoard 可以帮我们: 实时查看 loss / acc 曲线 → 判断是否过拟合、欠拟合; 对比不同模型或超参数的效果; 可视化模型结构 → 帮助调试模型设计; 查看权重/梯…...
丝杆升降机限位失灵深度剖析:从故障机理到智能监测方案
在工业自动化与精密机械传动领域,丝杆升降机凭借高精度、大推力的特性,成为产线设备的核心执行部件。然而,限位系统的可靠性直接决定设备安全运行与生产连续性。本文将从技术原理、故障诊断到智能监测方案,系统性解析丝杆升降机限…...
系统集成项目管理工程师学习笔记
第九章 项目管理概论 1、项目基本要素 项目基础 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目具有临时性、独特性、渐进明细的特点。项目的“临时性”是指项目只有明确的起点和终点。“临时性”并一定意味着项目的持续时间短。 项目可宣告结束的情况&…...
RDD的自定义分区器-案例
对电商订单数据进行处理,订单数据包含用户 ID 和订单金额,不同地区的用户有不同的 ID 范围。我们会按照地区对订单数据进行分区,这样做能让相同地区的订单数据处于同一分区,便于后续按地区进行统计金额分析。 订单数据如下&#x…...
牛客网NC231954:斐波那契数列 (简单的数列问题)
牛客网NC231954:斐波那契数列 (简单的数列问题) 题目描述 本题要求我们计算斐波那契数列的第n项,斐波那契数列定义如下: f(1) 1f(2) 1f(n) f(n-1) f(n-2),当n ≥ 3 给定整数n,求f(n)的值。 算法思路 斐波那契…...
中国近代史3
辛亥革命 1.同盟会:建立 1905年,东京,第一个全国性的资产阶级革命政党;同盟会纲领“驱除鞑虏,恢复中华,建立民国,平均地权” “民族”“民生”“民权” 2.武昌起义 ①爆发:1911.10…...
晶振的核心参数
目录 1.简介 2.晶振核心参数详解 3.晶振的抖动(jitter) 4.抖动的三种测量方式 5.抖动的其他资料 1.简介 再看一些晶振的手册时,经常遇到一些类似或相近的参数,今天借此机会,做一个小姐。 2.晶振核心参数详解 1…...
北京孙河傲云源墅:限量典藏的主城墅居臻品
在限墅令的背景下,北京主城的墅居产品日益稀缺,而傲云源墅作为孙河墅区的杰出之作,凭借其独特的价值,成为了众多高端置业者的理想选择。 傲云源墅所处的孙河地区,是北京公认的高价值板块。其地位在 2025 年孙河 2902 …...
驱动-Linux定时-timer_list
了解内核定时相关基础知识 文章目录 简要介绍timer_list 特点API 函数实验测试程序 - timer_mod.c编译文件-Makefile实验验证 注意事项总结 简要介绍 硬件为内核提供了一个系统定时器来计算流逝的时间(即基于未来时间点的计时方式, 以当前时刻为计时开始…...
从理论到实战:模糊逻辑算法的深度解析与应用实践
从理论到实战:模糊逻辑算法的深度解析与应用实践 一、模糊逻辑的核心概念与数学基础 模糊逻辑(Fuzzy Logic)是一种处理不确定性的数学工具,其核心思想是将传统布尔逻辑的“非黑即白”扩展为连续的隶属度函数。例如,在…...
涨薪技术|0到1学会性能测试第65课-SQL捕获阻塞事件
前面的推文我们掌握了JVM调优技术。今天给大家分享MS SQL数据库监控与调优技术。后续文章都会系统分享干货,带大家从0到1学会性能测试。 01SQL捕获阻塞事件 在SQL Server 2005之前的版本,分析哪些进程产生阻塞以及哪些进程被阻塞,都需要使用脚…...
SQL实战:06交叉日期打折问题求解
文章目录 概述题目:交叉打折问题求解题解第一步:使用滑动窗口统计当前活动前的最大结束日期步骤二:拆分出交叉部分步骤三:计算每次活动的持续天数步骤四:分组统计最终结果完整SQL 概述 最近刷题时遇到一些比较有意思的…...
Linux云计算训练营笔记day09(MySQL数据库)
Linux云计算训练营笔记day09(MySQL数据库) 目录 Linux云计算训练营笔记day09(MySQL数据库)外键约束数据的导入和导出数据的导出数据的导入 DQL 数据查询语言查指定字段查所有字段where 过滤条件and 和 orin 和 not inbetween...an…...
docker 学习记录
docker pull nginx docker 将本地nginx快照保存到当前文件夹下 docker save -o nginx.tar nginx:latestdocker 将本地nginx 加载 docker load -i nginx.tar docker运行nginx在80端口 docker run --name dnginx -p 80:80 -d nginxredis启动 docker run --name mr -p 6379:6379 -…...
Kind方式部署k8s单节点集群并创建nginx服务对外访问
资源要求 请准备好doker环境,尽量用比较新的版本。我的docker环境如下 docker 环境: Docker version 20.10.21, build 20.10.21-0ubuntu1~18.04.3 安装kind kind表现上就是一个二进制程序,下载对应版本并增加执行权限即可: cu…...
Da14531蓝牙特征值1读没有回调解决
一. 我们调试中发现user_peripheral.c中的回调,一直都没有回调。(大家可以通过打印去排查) void user_catch_rest_hndl(ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id) { //此处省…...
journal of Electronic Imaging(JEI)投稿咨询
研究生投的第二篇论文-CV方向,由于太菜了,到处被拒,最后选择了Journal of Electronic Imaging(JEI) 审稿了三个月,最近突然变了状态,之前催稿说才一个审稿人,这样子是不是要被拒了,有没有知道的…...
upload-labs靶场通关详解:第6-9关
目录 第六关:大小写绕过 一、分析源代码 二、解题思路 三、解题步骤 第七关:空格绕过 一、分析源代码 二、解题思路 三、解题步骤 第八关:点号绕过 一、分析源代码 二、解题思路 三、解题步骤 第九关:::$DATA字符串绕…...
算法图表总结:查找、排序与递归(含 Mermaid 图示)
算法图表总结:查找、排序与递归(含 Mermaid 图示) 分类标签:算法、数据结构、Mermaid、技术图表 关键词: 算法可视化、Mermaid 图表、数据结构、二分查找、快速排序、递归树 摘要: 本文通过 Mermaid 图表…...
在文件检索方面doris和elasticsearch的区别
apache Doris 与 Elasticsearch 在文件检索领域的差异源于技术架构与定位目标的本质区别,以下从核心维度对比分析二者的技术特性: 一、 架构设计与定位差异 维度Apache DorisElasticsearch核心架构分布式 MPP 列式分析引擎,面向 OLAP 优化分布式倒排索…...
linux系统服务
Linux 系统服务(System Services) 是在后台持续运行的进程(守护进程,即 daemon),用于提供核心功能或支持其他应用程序(如网络管理、日志记录、定时任务等)。它们通常在系统启动时自动…...
大语言模型三大演进方向:记忆增强、工具集成与多模态突破
目录 一、方向演进:从通用模型到记忆增强系统 1.1 技术瓶颈分析 1.2 记忆增强技术路径 1.3 企业级应用架构 二、工具调用:从语言理解到行动执行 2.1 工具调用协议演进 2.2 工具编排范式比较 三、多模态突破:跨模态统一建模 3.1 多模态架构演进 3.2 医学多模态应用…...
嵌入式学习笔记DAY21(双向链表、Makefile)
一、双向链表 1.概念 双向链表(Doubly Linked List) 是一种链式数据结构,每个节点包含 两个指针(前驱指针 prev 和后继指针 next),分别指向 前一个节点 和 后一个节点,形成双向连接。 头节点&…...
Vue 学习随笔系列二十三 -- el-date-picker 组件
el-date-picker 组件 文章目录 el-date-picker 组件el-date-picker 只有某些日期可选 el-date-picker 只有某些日期可选 <template><div><el-form ref"form" size"mini":model"form" :rules"rules"label-width"8…...
IEEE出版|连续多年稳定检索|第三届信号处理与智能计算国际学术会议(SPIC2025)
【重要信息】 会议官网: www.ic-spic.com 会议日期:2025年11月28-30日 会议地点:中国 广州 截稿日期:2025年11月10日 接受或拒绝通知日期:提交后7个工作日 【征稿主题】 人工智能和机器学习 计算机系统和架构 …...
用Python代码绘制动态3D爱心效果
引言 介绍Python在创意编程中的应用,特别是如何通过简单的代码实现视觉上的美感。引出本文将分享的爱心代码,并简要说明其实现原理。 爱心代码的基本实现 展示一个简单的Python代码示例,使用字符画的方式在控制台中绘制一个爱心图案。 pr…...
牛客网刷题:NC208813求逆序数
牛客网刷题:NC208813求逆序数 问题描述 在排序和数据结构分析中,逆序数是一个重要的概念。对于一个数列来说,如果一对数的前后位置与大小顺序相反(即前面的数大于后面的数),那么它们就称为一个逆序对。一个…...
Day 21 训练
Day 21 训练 常见的降维算法数据预处理无监督降维PCA(主成分分析)主成分分析(PCA)作用和优势应用场景t-SNE(t-分布随机邻域嵌入)t-SNE(t-分布随机邻域嵌入)为什么 t-SNE 特别适用于高…...
1267, “Illegal mix of collations (latin1_swedish_ci,IMPLICIT
python 执行数据迁移报错 mysql : 1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT 解决方法: 替换TABLE 后面的表名为你自己的表名,mysql 黑窗口执行。 以下是我的表名,仅作参考 ALTER TABLE book CONVERT TO CHARACTE…...
【C#】Thread.Join()、异步等待和直接join
JogThread.Join() 是 .NET 中 System.Threading.Thread 类的一个方法,用来让当前调用线程暂停执行,直到目标线程(这里是 JogThread)终止为止。以下是它的核心语义和你在 UI 代码里需要注意的几个相关知识点。 1. Thread.Join() 的…...