草庐IT

Auto-Job任务调度框架

全部标签

c# - 有哪些 C# 工具可用于触发、排队、确定相关任务的优先级

我有一个与数据库交互的C#服务应用程序。它最近从.NET2.0迁移到了.NET4.0,因此我们可以使用大量新工具。我正在寻找指向编程方法或工具/库的指针,以处理定义任务、配置它们所依赖的任务、排队、确定优先级、取消等。有多种类型的服务:数据(用于检索和更新)计算(用数据计算的结果填充一些表)报告这些服务通常相互依赖并按需触发,即报告任务,其中可能包含代码,例如if(IsSomeDependentCalculationRequired())PerformDependentCalculation();//whichmaytriggerfurthercalculationsGenerateR

c# - 为什么运行一百个异步任务比运行一百个线程花费的时间更长?

为什么运行一百个异步任务比运行一百个线程花费的时间更长?我有以下测试类:publicclassAsyncTests{publicvoidTestMethod1(){vartasks=newList();for(vari=0;i();for(vari=0;iLongRunningOperationAsync(){varsw=Stopwatch.StartNew();awaitTask.Delay(500);Debug.WriteLine("Completedat{0},took{1}ms",DateTime.Now,sw.Elapsed.TotalMilliseconds);return

c# - 异步任务和锁

我有一个应该由两个进程更新的元素列表。第一个是UI线程(由用户控制),第二个是从Web服务检索信息的后台进程。由于第二个进程是I/O绑定(bind)的,它似乎适合异步任务。这引出了几个问题:由于异步任务不在单独的线程上运行,看来我在更新此列表时不需要任何类型的锁,对吧?另一方面,我们是否可以假设异步任务永远不会在单独的线程上运行?我说的是Windows窗体应用程序。也许将来我希望它作为控制台应用程序运行。AFAIK,在控制台应用程序中,异步任务在单独的线程上运行。如果任务在单独的线程上运行,询问任务的首选习惯用法是什么?这样我就可以在必要时建立锁。我不知道我是否真的需要一把锁,这让我想

c# - 如何让任务异常传播回 UI 线程?

在TPL中,如果Task抛出异常,该异常被捕获并存储在Task.Exception中,然后遵循observedexceptions上的所有规则.如果它从未被观察到,它最终会在终结器线程上重新抛出并使进程崩溃。有没有办法阻止Task捕获该异常,而只是让它传播?我感兴趣的任务已经在UI线程上运行(由TaskScheduler.FromCurrentSynchronizationContext提供),我希望异常转义以便它可以由我现有的Application.ThreadException处理处理程序。我基本上希望Task中未处理的异常表现得像按钮单击处理程序中的未处理异常:立即在UI线程上传

c# - 当你不能等待时,你怎么能等待任务

我正在开发Windows8运行时组件,因此公共(public)接口(interface)不能包含Task因为它不是Windows运行时类型。这意味着我无法将该方法标记为async不能awaitprivateasync我的库中的方法。这导致了对如何处理我的应用程序逻辑的一些困惑。这就是我同步做我想做的事情的方式。Resultr=TryGetAuthResultFromFile();if(r!=null){returnr;}r=GetAuthResultFromWebAuthenticationBroker();returnr;问题是TryGetResultFrom文件是asyncTask

c# - 温莎城堡 : Auto-register types from one assembly that implement interfaces from another

我使用CastleWindsor作为我的IoCcontainer.我有一个具有类似于以下结构的应用程序:MyApp.Services.dllIEmployeeServiceIContractHoursService...MyApp.ServicesImpl.dll员工服务:MyApp.Services.IEmployeeServiceContractHoursService:MyApp.Services.IContractHoursService...我使用XMLconfiguration目前,每次我添加一个新的IService/Service对时,我都必须向XML配置文件添加一个新组

c# - 如何使窗口具有任务栏文本但没有标题栏

如何让我的窗口没有标题栏,而是出现在任务栏中并带有一些描述性文字?如果您设置Form的.Text属性,那么.net会给它一个标题栏,这是我不想要的。this.ControlBox=false;this.FormBorderStyle=System.Windows.Forms.FormBorderStyle.FixedDialog;this.MaximizeBox=false;this.MinimizeBox=false;this.ShowInTaskbar=true;this.Text="Mytitlefortaskbar";我找到了一个部分解决方案来覆盖CreateParams:pr

c# - 模拟异步任务

我在使用MicrosoftBCL的.NET4.0上使用Moq进行单元测试时遇到以下情况TaskmockTask=newTask(()=>newMyClass());uploadHelper.Setup().Returns(mockTask);Task.WaitAll(mockTask);我面临的问题是Task.WaitAll(mockTask)只是阻塞并且永远不会返回。我在这里做错了什么?编辑请注意,mockTask在我的上下文中是异步的。 最佳答案 您的任务尚未开始!只需使用:TaskmockTask=Task.FromResul

c# - 将任何给定的函数转换为可等待的任务

以下代码的目标是将任何给定函数转换为可等待函数。这个想法是在从数据库中获取数据时使用它,从而使代码可以灵活地使用同步获取函数(我当前ORM的强加),或者使用与异步完全相同的函数。我知道代码背后的概念可能有很多问题。到目前为止,我只是试图摆脱编译器错误,以便我可以运行代码并检查行为。但是我当然愿意事先讨论这个概念,如果它背后的整个想法是错误的,那么我会更有效地利用我的时间寻找另一个解决方案。asyncstaticvoidMain(){//Thefollowinglinegivesacompilererror://Error1Thebestoverloadedmethodmatchfor'

c# - 如何将 .Net 框架先决条件添加到设置安装

我在MSVisualStudio2017中有一个C#WinForms项目。我添加了一个VisualStudio安装程序安装向导项目来为我的应用程序创建一个安装程序。这是我第一次使用安装程序项目。安装程序正确地具有.NetFramework4.5.1的先决条件。但是,我想让安装程序包含.Net框架安装,而不是要求用户在安装时单独下载和安装它(一些用户的机器没有互联网连接)。我已经在设置属性页中将先决条件设置为“从与我的应用程序相同的位置下载先决条件”,但是当我build设置时,我看到3个错误,如下所示:ERROR:Toenable'Downloadprerequisitesfromthe