差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| csharp:线程 [2025/11/27 13:04] – [线程与进程 (Threads & Processes)] 张叶安 | csharp:线程 [2025/11/27 13:05] (当前版本) – [Task.Run 案例] 张叶安 | ||
|---|---|---|---|
| 行 77: | 行 77: | ||
| `Thread` 是 C# 中最基础的线程操作类。线程是进程中的执行单元。 | `Thread` 是 C# 中最基础的线程操作类。线程是进程中的执行单元。 | ||
| - | ==== 200-10-1:Thread 基础案例 ==== | + | ==== Thread 基础案例 ==== |
| <code csharp> | <code csharp> | ||
| 行 114: | 行 114: | ||
| </ | </ | ||
| - | <note warning> | + | |
| **关于 Suspend 和 Resume** | **关于 Suspend 和 Resume** | ||
| 代码中提到的 `thread.Suspend()` (暂停) 和 `thread.Resume()` (恢复) 方法在现代 .NET 开发中已被**标记为过时 (Obsolete)** 且不建议使用。 | 代码中提到的 `thread.Suspend()` (暂停) 和 `thread.Resume()` (恢复) 方法在现代 .NET 开发中已被**标记为过时 (Obsolete)** 且不建议使用。 | ||
| + | |||
| 原因:如果在持有锁或资源时强制暂停线程,极易导致死锁 (Deadlock)。建议使用 `ManualResetEvent` 或 `AutoResetEvent` 等信号量机制来控制线程的暂停与继续。 | 原因:如果在持有锁或资源时强制暂停线程,极易导致死锁 (Deadlock)。建议使用 `ManualResetEvent` 或 `AutoResetEvent` 等信号量机制来控制线程的暂停与继续。 | ||
| - | </ | + | |
| ==== 跨线程 UI 操作 ==== | ==== 跨线程 UI 操作 ==== | ||
| 行 211: | 行 212: | ||
| **Thread 与 Task 的简单对比:** | **Thread 与 Task 的简单对比:** | ||
| - | * | + | |
| - | * | + | * |