C# 异步的简单用法
2024-10-20 20:38:14
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace ConsoleApp3
{
class Class3
{
CancellationTokenSource source = new CancellationTokenSource();
internal void Run()
{ CancellationToken token = source.Token;
TaskFactory factory = new TaskFactory(token);
//创建一个 异步
Task<string> task = factory.StartNew(TestTaskEvent1, token);
// task.Start();
Thread.Sleep(15000);
//不取消 此函数会一直循环
source.Cancel();
//Console.WriteLine(task.Result);
Console.WriteLine("aaaer");
source.Dispose();
} private string TestTaskEvent1(object obj)
{
while (!source.IsCancellationRequested)
{
Thread.Sleep(100);
}
//for (int i = 1; i <= 3; ++i)
//{
// Thread.Sleep(1000); //} Console.WriteLine("event over");
return "a";
} internal void Run1()
{
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token; Task<string> task = new Task<string>(TestTaskEvent, source, token);
task.Start();
Thread.Sleep(1500);
source.Cancel();
Console.WriteLine(task.Result);
//此处会等待Result执行完毕后再执行
Console.WriteLine("aaa");
}
string TestTaskEvent(object obj)
{ for (int i = 1; i <= 3; ++i)
{
Thread.Sleep(1000); } return "a";
}
}
}
最新文章
- 微信小程序教程汇总
- c#连接关闭了,事务并没有关闭
- Java初始化顺序
- 前端优化之图片延迟加载(lazyload.js)
- Android开发学习之路-使用Handler和Message更新UI
- Redis for .NET 系列之实现分页需求
- iOS UITableView 移除单元格选中时的高亮状态
- [译] Angular 2 VS. React: 血色将至
- UVALive 2635 匈牙利算法
- fastdfs-client-java 文件上传
- content的定义
- 华为測试 字符串运用-password截取
- TypeScript开发程序
- HDU-5289<;two pointers>;
- HBase数据库配置中各配置项的释义及默认值
- 关于z-index使用方法
- 36纯 CSS 动画原理,在页面上表现日蚀现象
- if结构和逻辑运算符
- NOIP2015其余几道题
- Effective C++ 条款08:别让异常逃离析构函数