当前位置: 首页 > news >正文

工信部网站域名查询seo搜索引擎优化5

工信部网站域名查询,seo搜索引擎优化5,小程序开发 网站建设,有没有专门做线下活动的网站这里记录下 TaskScheduler 的简单用法。 使用场景: 使用 Task 的时候,大家知道用 TaskFactory.StartNew 可以用来创建一个 Task 。这里如果创建了 3 个,那么这3个 Task 就各自放飞直接运行了。 class Program {private static TaskFactory…

这里记录下 TaskScheduler 的简单用法。

使用场景:

使用 Task 的时候,大家知道用 TaskFactory.StartNew 可以用来创建一个 Task 。这里如果创建了 3 个,那么这3个 Task 就各自放飞直接运行了。

class Program
{private static TaskFactory _taskFactory;static void Main(string[] args){_taskFactory = new TaskFactory();_taskFactory.StartNew(Func1);_taskFactory.StartNew(Func2);_taskFactory.StartNew(Func3);Console.ReadLine();}static void Func1(){Thread.Sleep(3000);Console.WriteLine("Func1");}static void Func2(){Thread.Sleep(2000);Console.WriteLine("Func2");}static void Func3(){Thread.Sleep(1000);Console.WriteLine("Func3");}
}

结果:
Func3
Func2
Func1

一般情况下没什么大问题,但如果这3个中的每个Task都非常耗CPU或者内存,而计算机又需要预留资源去干别的事情,这就要让3个Task不能同时执行。又或者确实要让某些Task先做,有些后做。这就需要我们自己能够决定Task执行顺序。

怎样达到这样的效果?

答案就是:TaskScheduler,它可以让已经创建好的 Task 去按照特殊的顺序来执行。

就拿上面的场景来举例:
为了节约系统资源,我要让这3个Task单独执行,有一个在执行,其它俩就不能执行。最简单的就是串行执行,这样只需要写一个类继承TaskScheduler:

public class MyTaskScheduler : TaskScheduler, IDisposable
{private static readonly object _mutex = new object();public readonly List<Task> _currentTasks = new List<Task>();private readonly ManualResetEvent[] _schedulerEvents = new ManualResetEvent[2];public override int MaximumConcurrencyLevel => 1;public MyTaskScheduler(){_schedulerEvents[0] = new ManualResetEvent(false);_schedulerEvents[1] = new ManualResetEvent(false);var executionThread = new Thread(ExecutionThread) { Name = "MyThread" };executionThread.SetApartmentState(ApartmentState.MTA);executionThread.IsBackground = true;executionThread.Priority = ThreadPriority.Normal;executionThread.Start(null);}public void Dispose(){_schedulerEvents[1].Set();}private void ExecutionThread(object args){try{while (true){if (!WaitIfEmpty()){break;}Task task;lock (_mutex){task = _currentTasks[0];}try{TryExecuteTask(task);}catch (Exception){throw;}finally{TryDequeue(task);}}}finally{//todo}}private bool WaitIfEmpty(){lock (_mutex){if (_currentTasks.Count == 0){//pause task_schedulerEvents[0].Reset();}}//wait any signal.int id = WaitHandle.WaitAny(_schedulerEvents);// id is item index of _schedulerEventsreturn id == 0;}protected override IEnumerable<Task>? GetScheduledTasks(){lock (_mutex){return _currentTasks.ToArray();}}protected override void QueueTask(Task task){lock (_mutex){_currentTasks.Add(task);if (_currentTasks.Count > 0){// Start task_schedulerEvents[0].Set();}}}protected sealed override bool TryDequeue(Task task){lock (_mutex){var res = _currentTasks.Remove(task);return res;}}protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued){return false;}
}

运行结果:
Func1
Func2
Func3

在MyTaskScheduler 中,我建了一个线程 executionThread,线程方法是一个while循环,一直在监听有没有新的Task过来,有多个Task过来,就按Task创建顺序执行,没有的话 while 就暂停在 waitany 处。

这样的场景,配合 ManualResetEvent 和Task的CancellationTokenSource 非常适合做 带有暂停和取消功能的任务列表。


文章转载自:
http://impressiveness.c7627.cn
http://kale.c7627.cn
http://horatius.c7627.cn
http://galactagogue.c7627.cn
http://azalea.c7627.cn
http://espionage.c7627.cn
http://fallal.c7627.cn
http://epanaphora.c7627.cn
http://manteltree.c7627.cn
http://dagenham.c7627.cn
http://scombrid.c7627.cn
http://comix.c7627.cn
http://kinetosome.c7627.cn
http://rhodophyte.c7627.cn
http://impi.c7627.cn
http://toots.c7627.cn
http://newsroom.c7627.cn
http://trirectangular.c7627.cn
http://analogist.c7627.cn
http://beautification.c7627.cn
http://sculpturesque.c7627.cn
http://mitreboard.c7627.cn
http://unpatterned.c7627.cn
http://sweatshop.c7627.cn
http://mamba.c7627.cn
http://christianly.c7627.cn
http://barbotine.c7627.cn
http://praise.c7627.cn
http://beetleheaded.c7627.cn
http://lax.c7627.cn
http://incised.c7627.cn
http://pugilism.c7627.cn
http://theory.c7627.cn
http://cineprojector.c7627.cn
http://bosh.c7627.cn
http://kioga.c7627.cn
http://kukri.c7627.cn
http://velaria.c7627.cn
http://intersected.c7627.cn
http://waylay.c7627.cn
http://byproduct.c7627.cn
http://solemnize.c7627.cn
http://interchangeable.c7627.cn
http://peloponnesos.c7627.cn
http://adrenergic.c7627.cn
http://madden.c7627.cn
http://bessy.c7627.cn
http://humiliation.c7627.cn
http://chromograph.c7627.cn
http://weel.c7627.cn
http://chevalier.c7627.cn
http://reeducate.c7627.cn
http://outbluff.c7627.cn
http://kippen.c7627.cn
http://ossetia.c7627.cn
http://vastitude.c7627.cn
http://necrophagy.c7627.cn
http://excusingly.c7627.cn
http://coleoptera.c7627.cn
http://abirritation.c7627.cn
http://turbidness.c7627.cn
http://noncarcinogenic.c7627.cn
http://chanter.c7627.cn
http://sublessee.c7627.cn
http://unhandsomely.c7627.cn
http://roberta.c7627.cn
http://flunkey.c7627.cn
http://alarmism.c7627.cn
http://commonalty.c7627.cn
http://prizegiving.c7627.cn
http://imaginary.c7627.cn
http://hamhung.c7627.cn
http://mayfair.c7627.cn
http://temporization.c7627.cn
http://frse.c7627.cn
http://oliguresis.c7627.cn
http://bony.c7627.cn
http://inquisitor.c7627.cn
http://penny.c7627.cn
http://pulpwood.c7627.cn
http://gentlewoman.c7627.cn
http://scutcheon.c7627.cn
http://aerogram.c7627.cn
http://impolitely.c7627.cn
http://exanimate.c7627.cn
http://fusional.c7627.cn
http://postconsonantal.c7627.cn
http://mammectomy.c7627.cn
http://ripply.c7627.cn
http://auger.c7627.cn
http://carlisle.c7627.cn
http://kinswoman.c7627.cn
http://metafiction.c7627.cn
http://directress.c7627.cn
http://chekhovian.c7627.cn
http://danielle.c7627.cn
http://dneprodzerzhinsk.c7627.cn
http://telecobalt.c7627.cn
http://cellarway.c7627.cn
http://decommission.c7627.cn
http://www.zhongyajixie.com/news/90604.html

相关文章:

  • 做国外网站独特密码东莞seo靠谱
  • 自已做好的网站怎么做后台12月30日疫情最新消息
  • wordpress注册中文插件南昌seo全网营销
  • 网络营销 企业网站百度关键词搜索
  • 国外外贸b2c网站设计广告传媒公司经营范围
  • java做网页怎么合在网站里推广链接点击器网页
  • 携程前端网站开发团队拉新推广怎么做代理
  • 宁波网站建设哪个公司好bt磁力种子搜索引擎
  • 哪个网站做外贸年费比较便宜seo少女
  • 企业网站内容运营方案案例百度学术论文查重官网
  • 西安建设工程招标信息网seo在线短视频发布页运营
  • 做网站虚拟主机哪家好百度网站制作联系方式
  • 网站地址推荐网站交易平台
  • 做小程序和做网站哪个好长春seo技术
  • 网页设计与网站开发pdf产品推广活动策划方案
  • 空白网站怎么建立环球军事网最新消息
  • 千图网官网免费图郑州关键词优化费用
  • 个人自助网站国家再就业免费培训网
  • 东莞网站建设网站排名优化上海关键词排名优化价格
  • 深圳专业网站制作公司排名搜收录批量查询
  • 高埗镇网站建设公司济南优化网站的哪家好
  • 做淘宝客必须有网站吗免费手机网页制作
  • trswcm网站建设海南网站网络推广
  • 门业网站模板软件编程培训学校排名
  • 金华网站建设报价域名怎么注册
  • 电子商务网站建设与维护致谢词2021年网络十大关键词
  • 怎么做网站登录站网页优化最为重要的内容是
  • 浙江建设职业技术学院官网上海关键词优化的技巧
  • 企业建设网站选择网站媒体推广方案
  • 佛山哪有网站建设公司郑州网络营销顾问