草庐IT

延迟任务

全部标签

c# - 等到单元测试中的所有任务完成

我有这个类我想进行单元测试:publicclassSomeClass{publicvoidFoo(){Bar();}privatevoidBar(){Task.Factory.StartNew(()=>{//Dosomethingthattakessometime(e.g.anHTTPrequest)});}}这就是我的单元测试的样子:[TestMethod]publicvoidTestFoo(){//Arrangevarobj=newSomeClass();//Actobj.Foo();obj.Foo();obj.Foo();//Assert/*Ineedsomethingtowai

c# - 任务不包含 Run 方法的定义

我第一次尝试在我的代码中实现多线程。当我尝试使用TaskT=Task.Run(()=>{});VisualStudio仍然在Run()下划线声明“任务不包含定义‘运行’”我正在使用System.Threading.Tasks;互联网对这个问题一无所知 最佳答案 .NET4.0没有Task.Run方法。相反,您可以使用:任务T=Task.Factory.StartNew(()=>{});您可以了解更多关于here的信息 关于c#-任务不包含Run方法的定义,我们在StackOverflow

c# - 中继命令可以执行和任务

我想在调用中继命令时启动任务,但是只要该任务正在运行我就想禁用该按钮举个例子privateICommandupdate;publicICommandUpdate{get{if(update==null){update=newRelayCommand(param=>Task.Factory.StartNew(()=>StartUpdate()),param=>true);//truemeansthebuttonwillalwaysbeenabled}returnupdate;}}检查该任务是否正在运行的最佳方法是什么?这是我的解决方案,但不确定这是不是最好的方法classVm:Obser

c# - 如果我在未定义为任务的 IQueryable 上使用 await + ToListAsync() 是否正确

我正在使用带有EF-6的asp.netMVC-5,我不确定使用await+ToListAsync是否有效。例如,我有以下返回IQueryable的存储库方法:-publicIQueryablegetAllScanEmailTo(){returnt.TSets.Where(a=>a.Name.StartsWith("ScanEmail"));}我这样调用它:-varemailsTo=awaitrepository.getAllScanEmailTo().ToListAsync();一开始,我以为我会得到一个错误,因为我正在使用“等待”一个未定义为任务的方法,但上面的方法运行良好,所以有人

c# - 如何从 C# 中的异步任务 <bool> 函数获取 bool 结果 - 错误 : Cannot implicitly convert type `void' to `bool'

我已经创建了任务函数来验证我的json文件。一切正常,直到我没有使用结果。当我试图从asynctaskfunction获得结果时它显示错误为Cannotimplicitlyconvert'void'tobool.我的异步函数如下:privateasyncTaskMyValidationFunction(stringjson){boolisValid=true;.......DOINGMYVALIDATIONSTUFF.....returnisValid;}从另一个函数调用这个函数如下:publicboolGetJsonAndValidate(){boolisValid=true;str

c# - 使用 Moq 模拟单元测试中的执行延迟

我正在尝试测试以下内容:protectedIHealthStatusVerifyMessage(ISubscriberdestination){varstatus=newHeartBeatStatus();vartask=newTask(()=>{Console.WriteLine("VerifyMessage(Start):{0}-{1}",DateTime.Now,WarningTimeout);Thread.Sleep(WarningTimeout-500);Console.WriteLine("VerifyMessage(Success):{0}",DateTime.Now);

c# - 延迟执行和急切评估

你能给我一个在C#中使用急切求值的延迟执行的例子吗?我从MSDN了解到,LINQ中的延迟执行可以通过惰性求值或急切求值来实现。我可以在互联网上找到使用惰性求值的延迟执行的示例,但是我找不到任何使用急切求值的延迟执行的示例。此外,延迟执行与惰性求值有何不同?在我看来,两者看起来都一样。您能否也为此提供任何示例? 最佳答案 下面是我的回答,但也请注意JonSkeet今天在他的博客上谈到了一个事实,即他对MSDN中“懒惰”的含义并不完全满意,因为MSDN并不清楚懒惰的确切含义当他们在Justhowlazyareyou?中使用它时他的帖子值

c# - UWP 从任务更新 UI

我有一个应用程序,它正在检查本地网络中的网络范围(用于运行http服务)。所以这意味着,我正在检查f.e.从10.0.0.1到10.0.0.255。问题来了,在PC上运行速度还可以,但是在Lumia950上运行速度就不够了。所以我想在扫描期间更新UI。下面是问题:此刻我有几项任务f.e.10-每个任务都在扫描他的范围。任务1-10.0.0.1到10.0.0.25等等-我应该使用10个任务还是有什么办法,.net将如何自行解决?性能如何,f.e.如果我将使用50个任务?第二个问题是,在扫描过程中,我会找到PC,Web服务正在其中运行,但是...找到PC后,我应该如何更新UI?目前我只能在

c# - 为什么 IList 不是延迟执行?

据我了解,IEnumerable和IQueryable是延迟执行。为什么IList也支持延迟执行没有好处? 最佳答案 我想得越久,就越怀疑“延迟执行”的整个想法是否真的具有教学值(value)。我会通过否定来回答你的问题。IEnumerable,IQueryable和IList不以任何方式表示“延迟”或“急切”的计算。相反,接口(interface)代表提供服务的能力。IEnumerable表示服务“我可以一次提供一个序列,可能是无限的T类型的项目”。IQueryable表示服务“我可以表示对数据源的查询,并按需提供该查询的结果”。

c# - 如何在具有自己的用户类型的延迟加载属性上激活二级缓存?

前言:在我的应用程序中,我将原始WAV数据作为byte[]存储在数据库中。在我的域模型中,有一个类PcmAudioStream代表原始WAV数据。我创建了NHibernate的IUserType的实现,以在我的类和byte[]之间进行转换。有几个使用PcmAudioStream类的类,所有这些类都映射到数据库表。为避免在从此类表中检索行时始终加载所有WAV数据,我创建了FluentNHibernate的IUserTypeConvention的实现,该实现指定应始终延迟加载这些属性。所有这些都非常有效。问题:因为这些PcmAudioStream的内容很少改变,所以我想将检索到的实例放在二