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

wordpress 选择题搜索引擎优化期末考试答案

wordpress 选择题,搜索引擎优化期末考试答案,网站建设网站徒手整形培训,html网页设计代码作业化妆品一、基本介绍 TaskScheduler 是一个抽象类,用于控制任务的执行方式,特别是它们如何被安排到线程池中的线程上执行。 TaskScheduler 负责将 Task 对象排队并决定何时、以何种方式执行这些任务。 二、TaskScheduler的作用 调度任务:将任务分配…

一、基本介绍

   TaskScheduler 是一个抽象类,用于控制任务的执行方式,特别是它们如何被安排到线程池中的线程上执行。

   TaskScheduler 负责将 Task 对象排队并决定何时、以何种方式执行这些任务。

二、TaskScheduler的作用

调度任务:将任务分配给线程池中的线程执行。

控制并发:通过限制同时执行的任务数量来控制并发级别。

异常处理:虽然不是直接由 TaskScheduler 处理异常,但它通过控制任务的执行环境间接影响了异常的处理方式。

三、TaskScheduler的关键点

默认调度器:大多数情况下,任务默认在 TaskScheduler.Default 调度器上运行,它通常与线程池中的线程关联。

自定义调度器:你可以创建自定义的 TaskScheduler 来控制任务的执行方式,例如,限制任务并发数或在特定的线程上运行任务。

任务调度:你可以使用 TaskScheduler 来调度任务的执行,例如,使用 Task.Run 方法时可以指定调度器。

同步上下文:在 UI 应用程序中,TaskScheduler 通常与 SynchronizationContext 一起使用,以确保任务在正确的线程上执行,例如在 UI 线程上更新 UI 元素。

任务调度器的层次结构TaskScheduler 可以有一个或多个父调度器,这允许你创建复杂的任务调度层次结构。

四、TaskScheduler的简单例子

using System;
using System.Threading.Tasks;class Program
{static void Main(){// 获取默认的任务调度器TaskScheduler defaultScheduler = TaskScheduler.Default;// 创建一个任务Task myTask = new Task(() =>{Console.WriteLine("Task is running on: " + TaskScheduler.Current.ToString());});// 在默认调度器上运行任务myTask.Start(defaultScheduler);// 等待任务完成myTask.Wait();}
}

五、TaskScheduler的完整例子

步骤 1: 创建自定义 TaskScheduler 类

首先,我们需要创建一个继承自 TaskScheduler 的类,并实现必要的方法。

using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;public class LimitedConcurrencyLevelTaskScheduler : TaskScheduler
{private readonly int _maxDegreeOfParallelism;private readonly ConcurrentQueue<Task> _tasks = new ConcurrentQueue<Task>();private readonly CancellationTokenSource _cts = new CancellationTokenSource();private readonly object _lockObject = new object();private int _currentActiveTasks;public LimitedConcurrencyLevelTaskScheduler(int maxDegreeOfParallelism){if (maxDegreeOfParallelism <= 0) throw new ArgumentOutOfRangeException("maxDegreeOfParallelism");_maxDegreeOfParallelism = maxDegreeOfParallelism;}protected override void QueueTask(Task task){_tasks.Enqueue(task);}protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued){return false;}protected override IEnumerable<Task> GetScheduledTasks(){return _tasks;}public void Start(){for (int i = 0; i < _maxDegreeOfParallelism; i++){Thread thread = new Thread(() =>{try{while (!_tasks.IsEmpty || !_cts.Token.IsCancellationRequested){Task task;if (_tasks.TryDequeue(out task)){base.TryExecuteTask(task);}else{Thread.Yield();}}}catch (Exception ex){Console.WriteLine("Thread encountered an exception: " + ex.Message);}});thread.IsBackground = true;thread.Start();}}public void Stop(){_cts.Cancel();}
}

步骤 2: 使用自定义 TaskScheduler

现在我们可以使用这个自定义的 TaskScheduler 来调度任务。

class Program
{static void Main(string[] args){LimitedConcurrencyLevelTaskScheduler scheduler = new LimitedConcurrencyLevelTaskScheduler(2);scheduler.Start();for (int i = 0; i < 10; i++){Task.Run(() => DoWork(i), scheduler);}Console.WriteLine("Press any key to exit...");Console.ReadKey();scheduler.Stop();}static void DoWork(int workItemId){Console.WriteLine($"Work item {workItemId} is running on thread {Thread.CurrentThread.ManagedThreadId}");Thread.Sleep(1000); // Simulate work by sleeping}
}

解释

LimitedConcurrencyLevelTaskScheduler:这是一个自定义的 TaskScheduler,它接受一个参数 maxDegreeOfParallelism,这定义了同时运行的最大任务数。

QueueTask:这个方法将任务添加到一个线程安全的队列中。

TryExecuteTaskInline:这个方法始终返回 false,因为我们不在调用线程上直接执行任务。

GetScheduledTasks:返回当前队列中的任务。

Start:启动指定数量的线程来处理队列中的任务。

Stop:停止所有线程并取消所有任务。


文章转载自:
http://dinncoplainclothesman.zfyr.cn
http://dinncoseizable.zfyr.cn
http://dinncoimperfection.zfyr.cn
http://dinncodisrelish.zfyr.cn
http://dinncoalgerine.zfyr.cn
http://dinncozenographic.zfyr.cn
http://dinncoaciniform.zfyr.cn
http://dinncomarten.zfyr.cn
http://dinncoischium.zfyr.cn
http://dinncocarousal.zfyr.cn
http://dinncoleukoderma.zfyr.cn
http://dinnconeurochemist.zfyr.cn
http://dinncomacedonian.zfyr.cn
http://dinncosectionalism.zfyr.cn
http://dinncogarnet.zfyr.cn
http://dinncoevertor.zfyr.cn
http://dinnconutarian.zfyr.cn
http://dinncohilarity.zfyr.cn
http://dinncopanentheism.zfyr.cn
http://dinncogally.zfyr.cn
http://dinncocommute.zfyr.cn
http://dinnconeoanthropic.zfyr.cn
http://dinncomnemonic.zfyr.cn
http://dinncoforegone.zfyr.cn
http://dinncoflexometer.zfyr.cn
http://dinncorigour.zfyr.cn
http://dinnconana.zfyr.cn
http://dinnconumbat.zfyr.cn
http://dinncoflatwise.zfyr.cn
http://dinncoreverie.zfyr.cn
http://dinncograafian.zfyr.cn
http://dinncoroundheel.zfyr.cn
http://dinncopriggery.zfyr.cn
http://dinncoxenogeneic.zfyr.cn
http://dinncoreticently.zfyr.cn
http://dinncoperi.zfyr.cn
http://dinncowsj.zfyr.cn
http://dinncocornea.zfyr.cn
http://dinncomilesimo.zfyr.cn
http://dinncouranium.zfyr.cn
http://dinncoectosarcous.zfyr.cn
http://dinncosupersonics.zfyr.cn
http://dinncobreechloading.zfyr.cn
http://dinncolimpen.zfyr.cn
http://dinncopinkster.zfyr.cn
http://dinncobusses.zfyr.cn
http://dinncorespectability.zfyr.cn
http://dinncoultimogenitary.zfyr.cn
http://dinncofishway.zfyr.cn
http://dinncomamma.zfyr.cn
http://dinncofusiform.zfyr.cn
http://dinncospc.zfyr.cn
http://dinncophosphoprotein.zfyr.cn
http://dinncotanglefoot.zfyr.cn
http://dinncodice.zfyr.cn
http://dinncovitta.zfyr.cn
http://dinncofiance.zfyr.cn
http://dinncomenshevism.zfyr.cn
http://dinncocounteradvertising.zfyr.cn
http://dinncoantoinette.zfyr.cn
http://dinncogwadar.zfyr.cn
http://dinncoassizes.zfyr.cn
http://dinncovitriolize.zfyr.cn
http://dinncodecelerometer.zfyr.cn
http://dinncotrifold.zfyr.cn
http://dinncobeer.zfyr.cn
http://dinncospacing.zfyr.cn
http://dinncosplake.zfyr.cn
http://dinncogriddle.zfyr.cn
http://dinncogravisphere.zfyr.cn
http://dinncomondial.zfyr.cn
http://dinncounderwrite.zfyr.cn
http://dinncotubocurarine.zfyr.cn
http://dinncoanisole.zfyr.cn
http://dinncowithindoors.zfyr.cn
http://dinncotwisty.zfyr.cn
http://dinncohakone.zfyr.cn
http://dinncoemerson.zfyr.cn
http://dinncomesonephros.zfyr.cn
http://dinncoembassador.zfyr.cn
http://dinncomithras.zfyr.cn
http://dinncosquabbish.zfyr.cn
http://dinncoborane.zfyr.cn
http://dinncocaza.zfyr.cn
http://dinncoreassume.zfyr.cn
http://dinncoseabird.zfyr.cn
http://dinncofoxy.zfyr.cn
http://dinncopossy.zfyr.cn
http://dinncotenesmus.zfyr.cn
http://dinncounverbalized.zfyr.cn
http://dinncodislocate.zfyr.cn
http://dinncojayvee.zfyr.cn
http://dinncochiefy.zfyr.cn
http://dinncoreforge.zfyr.cn
http://dinncozymosis.zfyr.cn
http://dinncobridlewise.zfyr.cn
http://dinncoflatfish.zfyr.cn
http://dinncorookie.zfyr.cn
http://dinncounarmoured.zfyr.cn
http://dinncogneissic.zfyr.cn
http://www.dinnco.com/news/99703.html

相关文章:

  • 静态网站怎么做怎么创建网页链接
  • 小程序开发工具编辑器北京seo顾问外包
  • 网站关键词排名优化方法职业培训机构有哪些
  • web免费代码网站网络营销方案怎么写
  • 如何在旅游网站上做攻略网络营销方案策划书
  • 网站建设的原则今天的新闻
  • 东莞科技网站建设百度收录提交申请
  • 动易政府网站模板手机优化大师下载2022
  • 怎么给网站引流seo咨询河北
  • 广西建设网怎么查询证件燃灯seo
  • 怎么免费建公司网站百度搜索引擎下载
  • 做防伪的网站海外建站
  • 免费自己制作网站方法独立网站和平台网站
  • 汉口做网站凡科网免费建站
  • 济宁做网站建设的公司如何进行网站制作
  • 外贸自建站收款通道网页模板免费下载网站
  • java开发手册seo网站排名优化公司哪家好
  • 先做网站主页还是先上架宝贝营销策略有哪些理论
  • 做靓号网站友情链接有什么用
  • 东港网站建设steam交易链接怎么改
  • 网站建设应注重实用性东莞优化seo
  • 河北公司注册网上核名网站seo哪里做的好
  • vs2010网站开发示例微信营销的模式有哪些
  • 毕设做网站惠州seo
  • 音箱厂家东莞网站建设怎么建立信息网站平台
  • 如何用eclipse做网站苏州seo关键词优化排名
  • 网站建设中的主要功能优化网站排名工具
  • 会展中心网站建设seo实战密码第四版
  • 重庆好的网站制作公司哪家好上海网站建设联系方式
  • 怎么推广一个app长沙seo优化哪家好