c# 多线程 task
时间: 2023-06-29 18:12:46 浏览: 192
在 C# 中,多线程可以使用 `Task` 来实现。`Task` 可以用来表示一个异步操作,在开启一个 `Task` 后,可以让它在后台执行,而不会阻塞当前线程。下面是一个简单的 `Task` 示例:
```
Task.Run(() =>
{
// 在后台线程中执行一些操作
// ...
}).ContinueWith(task =>
{
// 操作完成后在主线程中执行一些操作
// ...
// 获取操作结果
var result = task.Result;
});
```
在上面的代码中,`Task.Run` 方法用于创建一个新的 `Task` 并在后台线程中执行指定的操作。`ContinueWith` 方法则用于指定在 `Task` 完成后要执行的操作。在 `ContinueWith` 方法中,我们可以访问 `Task` 的结果,并在主线程中执行一些其他操作。
需要注意的是,在使用 `Task` 时,应该避免在后台线程中访问 UI 线程相关的控件,否则可能会出现线程安全问题。如果需要在 UI 线程中执行一些操作,可以使用 `TaskScheduler.FromCurrentSynchronizationContext` 方法来获取当前线程的 `TaskScheduler`,然后在 `ContinueWith` 方法中指定要在该 `TaskScheduler` 上执行的操作。
阅读全文