草庐IT

one-class任务

全部标签

c# - .NET 任务的性能指标/诊断

有没有办法从.NET中获取有关(C#5或更新版本,所以异步/等待后)等待执行的任务数量和类似指标的数据,以用于诊断生产服务器上发生的问题?我正在讨论的情况是一个异步所有的方式向下系统(例如一个巨大的并行套接字服务器,其中每个请求从一开始就异步运行),其中初始任务要么产生多个任务,每个任务都需要处理(或每次启动更多任务)或生成任务的时间,其中一些阻塞(如第三方代码),其中一些正确异步工作。我见过两种难以有效诊断的情况:在正常负载下,一切正常,但如果有足够多的请求,则CPU会很快跳到100%,所有请求的完成速度会越来越慢。当负载减轻时,CPU将保持在100%,直到大部分待处理任务逐渐完成,

c# - 如何以编程方式确定 Windows 任务栏是否隐藏?

我需要知道Windows任务栏是否隐藏。我相信没有.NET方法可以做到这一点,而且我也遇到过很多“如何隐藏和显示任务栏”示例,但我没有看到任何基于我正在寻找的东西。我不熟悉WindowsAPI,所以很难看懂传统的Windows代码。有人可以告诉我一篇文章或类型代码告诉我任务栏的当前状态是否隐藏吗?我正在用C#编写代码。谢谢。 最佳答案 winSharp93提供了一个似乎有效的辅助类(“FindoutSize(andposition)ofthetaskbar”)。它使用Win32的SHAppBarMessagefunction.以下是

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# - C# 3.0 中 "special class"枚举的泛型类型约束是否有解决方法?

这个问题在这里已经有了答案:Anyoneknowagoodworkaroundforthelackofanenumgenericconstraint?(12个答案)关闭9年前。Update:SeethebottomofthisquestionforaC#workaround.你好,考虑以下扩展方法:publicstaticboolHasFlags(thisTvalue,Tflags)whereT:System.Enum{//...}如您所知,这将在编译时抛出错误,因为通常不允许类从System.Enum继承。问题在于使用enum关键字指定的任何枚举实际上都继承自System.Enum,

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