草庐IT

延迟任务

全部标签

c# - 如何使用异步/等待方法管理类似 NDC 的 log4net 堆栈? (每个任务堆栈?)

在普通/同步/单线程控制台应用程序中,NDC.Push可以很好地管理“当前项目”(可能在多个嵌套级别,但对于本示例只有1个级别)。例如:privatestaticILogs_logger=LogManager.GetLogger("Program");staticvoidMain(string[]args){BasicConfigurator.Configure();DoSomeWork("chunk1");DoSomeWork("chunk2");DoSomeWork("chunk3");}staticvoidDoSomeWork(stringchunkName){using(NDC

c# - 延迟加载 - 什么是最好的方法?

我见过很多延迟加载的例子——你的选择是什么?例如给定一个模型类:publicclassPerson{privateIList_children;publicIListChildren{get{if(_children==null)LoadChildren();return_children;}}}Person类不应该知道它的子类是如何加载的......或者应该知道吗?它当然应该控制何时填充属性?您是否有一个将Person与其子集合耦合在一起的存储库,或者您是否会使用不同的方法,例如使用lazyloadclass-即便如此,我也不希望lazyload类在我的模型架构中变得模糊。如果首先请

c# - 异步任务方法后触发回调

我需要在foreach时触发回调循环已完成对List中每个项目的搜索.privateasyncvoidstartSearchBtn_Click(objectsender,EventArgse){awaitSearch(files,selectTxcDirectory.SelectedPath,status);}privatestaticasyncTaskSearch(Listfiles,stringpath,LabelstatusText){foreach(stringfileinfiles){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load

c# - 如何运行多个任务,处理异常并仍然返回结果

我正在更新我的并发技能。我的问题似乎相当普遍:从多个Uris读取、解析和处理结果等。我有ConcurrencyinC#Cookbook.有几个使用GetStringAsync的示例,例如staticasyncTaskDownloadAllAsync(IEnumerableurls){varhttpClient=newHttpClient();vardownloads=urls.Select(url=>httpClient.GetStringAsync(url));Task[]downloadTasks=downloads.ToArray();string[]htmlPages=awai

c# - 将两个并行任务的结果合并到一个列表中

我想将2个任务的结果合并到一个列表集合中。确保-我想并行运行这两种方法。代码:ListtotalEmployees=newList();方法一:publicasyncTask>SearchEmployeeFromDb();方法二:publicasyncTask>GetEmployeeFromService();现在,我想将这两个方法的结果保存在totalEmployees字段中,而且这两个方法应该异步运行。 最佳答案 虽然许多答案都很接近,但最干净、最有效的选择是使用Task.WhenAll结合SelectMany:asyncTas

c# - 重定向前的时间延迟

我为我的网络应用程序创建了一个注册页面。应用要求用户注册新账号成功后,页面会提示“注册成功”,然后等待5秒后切换到登录页面。我使用了Thread.Sleep(5000)。它等待5秒但不显示消息。谁能帮帮我?voidAccountServiceRegisterCompleted(objectsender,RegisterCompletedEventArgse){if(e.Result){lblMessage.Text="Registersuccessfully";Thread.Sleep(5000);this.SwitchPage(newLogin());}else{...}}

c# - 阻止 Visual Studio 中断任务中的异常

我有以下代码:Taskload=Task.Factory.StartNew(()=>{//SomeStuffWhichThrowsanException});try{load.Wait();}catch(AggregateExceptionex){MessageBox.Show("Error!");}每当任务中抛出异常时,我希望它冒泡并被trycatch捕获,而不是VisualStudio在异常发生时中断。我试过谷歌,有人建议我在我的方法之上添加这个[DebuggerHidden],但它不起作用。 最佳答案 好的,我知道怎么做了。答

c# - Task.WaitAll 不等待任务完成

在尝试弄清楚C#中的新(现在可能不是那么新,但对我来说还是新的)Task异步编程时,我遇到了一个问题,我花了一些时间才弄明白,我不确定为什么。我已经解决了这个问题,但我仍然不确定为什么它是一个问题。我只是想我会分享我的经验,以防有人遇到同样的情况。如果有任何专家愿意告诉我问题的原因,那将是非常好的,我们将不胜感激。我总是喜欢知道为什么某些东西不起作用!我做了一个测试任务,如下:Randomrng=newRandom((int)DateTime.UtcNow.Ticks);intdelay=rng.Next(1500,15000);Task>testTask=Task.Factory.S

c# - 结合应用程序域远程处理和任务时出现死锁

我的应用程序需要将插件加载到单独的应用程序域中,然后在其中异步执行一些代码。我已经编写了一些代码来将Task包装在可编码类型中:staticclassRemoteTask{publicstaticasyncTaskClientComplete(RemoteTaskremoteTask,CancellationTokencancellationToken){Tresult;using(cancellationToken.Register(remoteTask.Cancel)){RemoteTaskCompletionSourcetcs=newRemoteTaskCompletionSou

c# - MSBuild 内联任务 - 引用非标准 Microsoft 程序集

我正在使用新的MSBuild内联任务来利用Microsoft.Web.Publishing.Tasks.dll程序集中的TransformXml(XDT转换)。这是我的任务(截图)的样子:...这可以很好地编译并加载DLL,但是,当它执行时失败,因为它试图在appbase路径中找到程序集,该路径是:C:\Windows\Microsoft.NET\Framework\v4.0.30319。我本以为它会看我给它的路径。Fusion日志显示:===Pre-bindstateinformation===\rLOG:User=xxx\Kamran\rLOG:DisplayName=Micros