【c# – 同时运行任务.NET 4.5】教程文章相关的互联网学习教程文章

c# – 如何在通用应用程序中禁用任务并行库的ETW事件源?【代码】

任务并行库使用Event Tracing for Windows (ETW)进行日志记录.显然,在Windows Phone或Windows Store .NET Runtime下,存在与TPL或ETW中的日志记录相关的错误.原始问题描述于here. 一种可能的解决方法是禁用TPL的ETW EventSource. 如果我真的想要如何在通用Windows应用程序中禁用它? 反射适用于桌面应用程序,但不适用于WP / WinRT应用程序. EventCommand.Disable未被识别为EventSource.SendCommand的有效命令(尽管它在ETW内部使用)....

c# – TPL异步等待 – 异步任务是否必须链接调用堆栈?【代码】

我的理解是,以下是不好的做法,因为它会阻塞线程:Task t = Task.Run(() => MyMethod()); t.Wait();虽然以下内容不会阻止该主题:await MyMethod();但是,要使用await,必须在方法签名中使用async关键字,并返回Task而不是void,或Task< T>. 但是,在n层应用程序中,如果你有一个巨大的调用堆栈,那么我们必须让每个调用方法都是async / Task,如LinqPad的以下简单示例所示:async void Main() {int i = await GetNumberD();i.Dump(); }asyn...

c# – 在页面激活长时间运行的任务时写入多个文本行【代码】

我写了一个asp.net页面,它打印一些文本如下:protected void Page_Load(object sender, EventArgs e) {Response.ClearContent();for (int i = 0; i <=100; i++){ var isOk = DoSomeTask(i);context.Response.Write(string.Format("Step {0}: {1}",i, isOk ? "Success": "Error"));Thread.Sleep(4000);} }我遇到了问题,文本只显示页面加载成功的时间.如何在页面执行时呈现文本?解决方法:好吧,我在当天很早就读过你的问题,但没有回...

c# – 以xamarin形式通过计时器重复异步任务【代码】

我是xamarin.forms开发的新手,我还在网上找到的几个教程的第一步.我有一个异步任务,从date.jsontest.com返回时间我有一个计时器,减少标签中的文本.我想把异步任务放在计时器中,以便它重复自己并在标签上显示时间但是我得到的不能将async lamba转换为func 这是我的代码请帮助我,谢谢static async Task<string> RequestTimeAsync(){using (var client = new HttpClient()){var jsonString = await client.GetStringAsync("http://dat...

c# – 测试此任务的正确方法是什么?【代码】

我有一个方法,它使用任务和async / await重复工作.public static Task ToRepeatingWork(this Action work, int delayInMilliseconds){Action action = async () =>{ while (true){try{work();}catch (MyException ex){// Do Nothing}await TaskEx.Delay(new TimeSpan(0, 0, 0, 0, delayInMilliseconds));}};return new Task(action, SomeCt, TaskCreationOptions.LongRunning);}我写过相应的测试:[TestMethod, Tes...

c# – 如何跨一组并行任务共享事务【代码】

我有一个TransactionScope对象,我想将它用于使用Parallel.ForEach创建的所有任务,我该如何实现? 我想并行写入消息队列,20-50条消息,消息队列是事务性的:using (var queue = new MessageQueue(_exportEndpoint)){var label = string.Format("{0} ComponentId - {1}", DateTime.Now.ToUniversalTime(), componentId);queue.Send(contents, label, MessageQueueTransactionType.Automatic);_log.WriteInfo("ExportToQueue: Message ...

c# – 任务/线程中的CredentialsCache.DefaultCredentials

我希望你能帮助我. 我在我的C#4.0应用程序中进行了一些需要身份验证的webrequests.我只是使用CredentialsCache.DefaultCredentials.只要我不通过Task< T> .Factory.StartNew(…)在不同的线程/任务中运行该功能,这就很有用.然后我得到401错误.我假设凭证不会传递给子线程? 如何将凭据传递给任何子任务/线程?解决方法:我假设你正在使用模拟,问题是凭据没有流入任务.通过倾销Windows.Identity.GetCurrent()的值来检查这一点以保存一...

如何在C#和Azure Startup任务中自动更新EXE项目?

我在我的天蓝相关项目中遇到了一个关键且有趣的问题.我创建了一个Web应用程序,用户可以从中下载插件(C#中的EXE项目),并在解压缩到他们的应用程序的启动设备上之后上传EXE和配置文件,这些部署在Azure平台上,并且exe会定期向我的Web应用程序发送数据监视Azure上的用户应用程序. 现在我的问题是,如果我在EXE项目中进行任何更改,那么拥有旧插件的用户如何在其现有应用程序上更新其文件(插件)?我需要一些自动类型的更新机制,这样我就可...

c# – 用于查询Active Directory的任务并行库(使用DirectoryServices)

我从Active Directory中取出大约400个对象,然后将它们缓存一段时间.速度取决于流量或我击中的域控制器,但即使在最好的情况下,它仍然有点慢,对我来说太慢. 我想知道DirectoryServices是否是并行库的合理候选者,或者由于某种原因它是一个坏主意.有谁有过 有没有人有这方面的经验? 提前致谢.解决方法:据我所知,并行库不会改变任何东西. 首先,请确保您的DNS设置正确. 400个对象并不是那么多,您将获得最佳结果,优化您的目录请求并最大限...

c# – 从任务返回null【代码】

var hs = new HashSet<int>();foreach(var item in mainclass) {Task<List<Class1>> cl1Task = Task.Factory.StartNew<List<Class1>>(() =>{if (!hs_VersiodIDs.Contains(item.VersionID)){return new List<Class1>(.....);}else{return null;}});Task.WaitAll(cl1Task ); }它不等待任务完成.问题是返回null所以我怎么能返回空任务?解决方法:您的代码没有任何意义,原因有两个: >启动不包含任何长时间运行代码的任务是没用的.你不...

c# – 如何排队/等待TPL任务完成【代码】

我需要TPL和Tasks的一些帮助 这是我的场景: >我有一些生成任务的事件处理程序.如果在上一个任务完成之前调用了一个事件,我想在继续之前等待(阻止)它.>我有一个同步方法,在调用之前,必须等到任何事件处理程序中的任何衍生任务完成后再继续. public void DoSomething() {// Expects any running tasks from OnEvent1(), OnEvent2(), OnEvent3()// to be completed before proceeding. }public void OnEvent1() {Task.Factory.Start...

c# – 使用查询.net Rest API检索已删除的任务

我刚刚使用Rally网站删除了一项任务,但是当使用REST API搜索任务时,它不会返回它.我以为它应该带有“Recycled”标志. 有谁能够帮我? 问候,圣保罗解决方法:这是WSAPI中的不一致.不幸的是,所有查询都是隐式范围的(Recycled = false),因此从工件端点返回的任何内容都不会被删除.也无法通过WSAPI访问回收站的内容. 我鼓励你在https://ideas.rallydev.com/ideas/D2374投票赞成这个功能的想法.

C# 创建线程的多种方式之 线程池和任务 基础知识【代码】

1. 线程池 创建,释放线程都需要消耗很多时间,所以如果有许多的用时较短的小任务需要同时完成且不需要过多的控制,则可以选择线程池来实现,即ThreadPool类. 对于线程所执行的任务来说,可以把线程分为两种类型:工作者线程和I/O线程。工作者线程用来完成一些计算的任务,在任务执行的过程中,需要CPU不间断地处理,所以,在工作者线程的执行过程中,CPU和线程的资源是充分利用的。对于I/O线程,在.Net中通过以Begin开头的方法来...

c# – 指定与对象并行linq的任务超时【代码】

我有一个我希望并行处理的图片列表,但是超时.我的旧代码通过分页项目和使用WaitHandles来做到这一点,但我想使用.Net 4中提供的新的Parallel Linq或Tasks库. 以下代码段正在运行,如何为其添加超时? (超时将用于执行的每个任务,而不是所有项目的超时处理)private PictureList FetchPictures(List<Picture> wallResults) { wallResults.AsParallel().WithDegreeOfParallelism(10).ForAll(delegate(Picture p){解决方法...

c# – Visual Studio AfterBuild生成代码的任务【代码】

我想创建一个在Visual Studio项目中生成代码的AfterBuild任务.问题是因为它是AfterBuild任务,所以生成的代码不会被编译. 我需要它作为AfterBuild任务,因为我加载构建的输出程序集并使用反射检查它以生成代码. 有没有办法可以在AfterBuild任务之后编译生成的代码? 谢谢.解决方法:可以在运行时使用CSharpCodeProvider类编译C#代码,请看这个article,这是很好的解释.虽然看起来你想通过注入你在AfterBuild任务事件中编译的代码来改变(...

运行 - 相关标签