C# Task超时规则
需要知道以下的知识
正规的骚操作:https://stackoverflow.com/questions/4238345/asynchronously-wait-for-taskt-to-complete-with-timeout
参考资料:https://walterlv.com/post/task-wait-async-with-timeout.html#%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99
开始我们的讲解吧
假如我们需要这样的游戏规则,在规定的时间内没有完成有关功能,就自动提示超时。
为了保证这个功能足够简单又能够说明清楚,我们加入朴素的素数判定
private static bool IsPrime(long num)
{
bool isPrime = false;
if (num == )
{
return true;
}
for (var i = ; i < num; i++)
{
if (num % i != ) continue;
isPrime = true;
break;
}
return isPrime;
} private static int ForPrime(int num)
{
int numPrime = ;
for (var i = ; i <= num; i++)
{
numPrime += IsPrime(i)? : ;
}
return numPrime;
} public static async Task<int> PrimeTask()
{
int val = await Task.Run(() => ForPrime()); return val;
}
虽然不知道处理100000个数字耗时多少,但肯定1s是跑不完的,so。。。如果我们需要在它超过1s之后提示呢,随便提示啥都行。
public static async Task<bool> TimeTask()
{
var task = PrimeTask();
int timeout = ;
if (await Task.WhenAny(task, Task.Delay(timeout)) == task)
{
return true;
} return false;
}
代码说明一下就是1s内处理完毕就返回true,否则就是false。
static void Main(string[] args)
{
Task<bool> t = TimeTask();
Console.WriteLine(t.Result);
Console.ReadKey();
}
最后简单的超时机制就弄好了~~
C# Task超时规则的更多相关文章
- 深入理解gradle中的task
目录 简介 定义task tasks 集合类 Task 之间的依赖 定义task之间的顺序 给task一些描述 task的条件执行 task rule Finalizer tasks 总结 深入理解g ...
- async/await Task Timeout
async/await Task Timeout 在日常的电脑使用过程中,估计最难以忍受的就是软件界面"卡住""无响应",在我有限的开发生涯中一直都是在挑战 它 ...
- [php]配置文件中的超时时间
概要 php.ini l max_execution_time l max_input_time php-fpm.conf l process_control_timeout l reques ...
- 一文了解 Hadoop 运行机制
大数据技术栈在当下已经是比较成熟的了,Hadoop 作为大数据存储的基石,其重要程度不言而喻,作为一个想从 java 后端转向大数据开发的程序员来说,打好 Hadoop 基础,就相当于夯实建造房屋的地 ...
- 应用监控CAT之cat-consumer源码阅读(二)
之前讲了 cat-client 进行cat埋点上报,那么上报给谁呢?以及后续故事如何?让我们来看看 cat-consumer 是如何接收处理的? 由cat-client发送数据,cat-consume ...
- 大数据入门第九天——MapReduce详解(六)MR其他补充
一.自定义in/outputFormat 1.需求 现有一些原始日志需要做增强解析处理,流程: 1. 从原始日志文件中读取数据 2. 根据日志中的一个URL字段到外部知识库中获取信息增强到原始日志 3 ...
- 多线程-ThreadPoolExecutor
线程池 线程池是可以控制线程创建.释放.并通过某种策略尝试复用线程去执行任务的一种管理框架,从而实现线程资源与任务之间的一种平衡. 类图 Executor Executor是最基本的执行接口:“执行者 ...
- (转)hadoop 配置文件解释
借鉴:https://blog.csdn.net/wangming520liwei/article/details/78923216 Hadoop 参数配置 详解 一.常用端口 组件 节点 默认端口 ...
- 大数据学习笔记之Hadoop(三):MapReduce&YARN
文章目录 一 MapReduce概念 1.1 为什么要MapReduce 1.2 MapReduce核心思想 1.3 MapReduce进程 1.4 MapReduce编程规范(八股文) 1.5 Ma ...
随机推荐
- c语言实践打印字母三角形
效果如下: int main(void) { char ch = 'A';//当前要打印的字符 ;//每行要打印字符的个数 ; i < ; i++,count++) { ; j < cou ...
- 基于.Net平台常用的组件和框架整理
转载自:http://www.cnblogs.com/hgmyz/p/5313983.html 基于转载进行补充 RPC框架: RPC:远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而 ...
- SQL修改字段类型
ALTER TABLE 表名 ALTER COLUMN 列名 新的数据类型[(长度)] NULL或NOT NULL 例:ALTER TABLE 教师 ALTER COLUMN 办公室 CHAR(20) ...
- Deep Residual Learning for Image Recognition
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun Microsoft Research {kahe, v-xiangz, v-sh ...
- python2.7响应数据中unicode转中文
print ("响应结果:%s" % r.content.decode('unicode_escape')) 一. 在爬虫抓取网页信息时常需要将类似"\u4eba\u75 ...
- svm的第一个实例
用的数据集是uci机器学习库的数据 ‘iris.data’ from sklearn import svm import csv from sklearn.model_selection import ...
- .Net 项目代码风格规范
最近没啥时间自己状态也不是很好,公司的事情忙,自己也有一些事情要处理,所以好久没有写博客了.利用公司午休时间写一写,以下是参考了一些资料,整理出来,共勉之. 代码风格没有正确与否,重要的是整齐划一,清 ...
- SQL 全角半角转换-(摘抄)
/****** SQL转换全角/半角函数 开始******/ CREATE FUNCTION ConvertWordAngle ( @str NVARCHAR(4000), --要转换的字符串 @fl ...
- webrowser卡死解决方案
webrowser 是由于有道词典造成 解决方案,关闭有道或卸载:
- renturn 错误
package ui.cfg; import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.JButton ...