using System;
using System.Threading;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
//声明CancellationTokenSource对象
static CancellationTokenSource cancelTokenSource = new CancellationTokenSource(); //程序入口
static void Main(string[] args)
{
Task.Factory.StartNew(MyTask, cancelTokenSource.Token); Console.WriteLine("请按回车键(Enter)停止");
Console.ReadLine(); cancelTokenSource.Cancel(); Console.WriteLine("已停止");
Console.ReadLine();
} //测试方法
static void MyTask()
{
//判断是否取消任务
while (!cancelTokenSource.IsCancellationRequested)
{
Console.WriteLine(DateTime.Now);
Thread.Sleep();
}
}
}
}

CancellationTokenSource 取消任务的更多相关文章

  1. 创建CancellationTokenSource对象用于取消Task

    虽然使用线程池ThreadPool让我们使用多线程变得容易,但是因为是由系统来分配的,如果想对线程做精细的控制就不太容易了,比如某个线程结束后执行一个回调方法.恰好Task可以实现这样的需求.这篇文章 ...

  2. C# 使用 CancellationTokenSource 终止线程

    http://blog.csdn.net/hezheqiang/article/details/51966511 我们在多线程中通常使用一个 C# 使用 CancellationTokenSource ...

  3. [转]C# CancellationTokenSource 终止线程

    我们在多线程中通常使用一个bool IsExit类似的代码来控制是否线程的运行与终止,其实使用CancellationTokenSource来进行控制更为好用,下面我们将介绍CancellationT ...

  4. C# 4.0 新特性之并行运算(Parallel)

    介绍C# 4.0 的新特性之并行运算 Parallel.For - for 循环的并行运算 Parallel.ForEach - foreach 循环的并行运算 Parallel.Invoke - 并 ...

  5. C#多线程中的异常处理

    常规Thread中处理异常 使用Thread创建的子线程,需要在委托中捕捉,无法在上下文线程中捕捉 static void Main(string[] args) { ThreadStart thre ...

  6. 转载 精进不休 .NET 4.0 (5) - C# 4.0 新特性之并行运算(Parallel) https://www.cnblogs.com/webabcd/archive/2010/06/03/1750449.html

    精进不休 .NET 4.0 (5) - C# 4.0 新特性之并行运算(Parallel)   介绍C# 4.0 的新特性之并行运算 Parallel.For - for 循环的并行运算 Parall ...

  7. C#多线程中的异常处理(转载)

    常规Thread中处理异常 使用Thread创建的子线程,需要在委托中捕捉,无法在上下文线程中捕捉 static void Main(string[] args) { ThreadStart thre ...

  8. Parallel

    介绍 C# 4.0 的新特性之并行运算 Parallel.For - for 循环的并行运算 Parallel.ForEach - foreach 循环的并行运算 Parallel.Invoke - ...

  9. C# 异步编程 (12)

    异步编程重要性 C# 5.0 提供了更强大的异步编程.添加两个新的关键字 async 和 await . 使用异步编程,方法调用是在后台运行(通常在线程或任务的帮助下),并且不会阻塞调用线程. 3种不 ...

随机推荐

  1. 基于 DirectX11 的 MMDViewer 04-渲染目标视图和多视口

    上篇文章给出了一个简单并且可以运行的渲染框架,接下来将介绍框架中的渲染管线构成. 1.创建渲染管线 在你创建完一个窗口后,接着便要创建渲染管线,使用的函数是 D3D11CreateDeviceAndS ...

  2. C# 6 与 .NET Core 1.0 高级编程 - C# 6 的新功能

    个人原创译文,转载请注明出处.有不对的地方欢迎指出与交流. 英文原文:Professional C# 6 and .NET Core 1.0 - What’s New in C# 6 C# 6 的新功 ...

  3. iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

    iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换. ...

  4. LeetCode之字符串处理题java

    344. Reverse String Write a function that takes a string as input and returns the string reversed. E ...

  5. Python与Go斐波那契数列

    #!/usr/bin/env python # -*- coding: utf-8 -*- # 斐波那契数列 def fibonacci_sequence(num): aa = 0 b = 1 li ...

  6. Apache Hive (七)Hive的DDL操作

    转自:https://www.cnblogs.com/qingyunzong/p/8723271.html 库操作 1.创建库 语法结构 CREATE (DATABASE|SCHEMA) [IF NO ...

  7. Unity3d 下websocket的使用

    今天介绍一下如何在Unity3D下使用WebSocket. 首先介绍一下什么是websocket,以及与socket,和http的区别与联系,然后介绍一下websocket的一些开源的项目. WebS ...

  8. Openssl s_server命令

    一.简介 s_server是openssl提供的一个SSL服务程序.使用此程序前,需要生成各种证书.本命令可以用来测试ssl客户端,比如各种浏览器的https协议支持 二.语法 openssl s_s ...

  9. LoadRunner11学习记录四 -- 集合点

    LoadRunner集合点的设置: 我们来想象一个场景,10名运动员参加长跑比赛,出发点同时起跑,他们是并排奔跑的:跑了N圈之后,因为有体能更强的,有体能稍弱的,他们的队形并排变成了前后.几乎一个跑道 ...

  10. Spring Boot Reference Guide

    Spring Boot Reference Guide Authors Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch,  ...