草庐IT

多任务loss优化

全部标签

c# - 如何定义接受任何生成 IEnumerable<T> 的任务的函数?

我正在寻找一个函数来接受任何产生IEnumerable的任务.为了说明,请考虑以下函数签名。voidDoWork(Task>task){}现在,我想按如下方式调用此方法:Tasktask=Task.FromResult(new[]{1,2,3});DoWork(task);显然,这行不通,因为两个Task类型不相同,并且任务不存在协方差。但是,我想知道是否有一些聪明的技巧可以让它发挥作用,灵感来自以下示例。asyncTask>GetTask(){returnawaitTask.FromResult(newint[]{1,2,3});}在这里,await正在使用内联任务的结果有效地创建一

c# - 优化托管到 native 调用

如何加快从托管代码调用native方法?我正在编写一个程序,该程序需要能够管理任意大小的对象列表并从中高速检索信息,并将其输入脚本。脚本是一些编译后的C#代码。我正在编写从C++(native)DLL/SO/等到C#(.Net或Mono)管理层的基本接口(interface)层。现在,我一直在做一些测试,我发现平均而言,从托管代码调用native方法比在托管代码中调用native方法慢100倍(所有native和所有托管都一样快,供引用)。我使用的语法是:[DllImport("test.dll")]externstaticpublicStringtest_method(Stringv

c# - 有没有办法知道是否正在等待任务?

我有一个方法publicTaskDoSomeWorkOnARemoteMachine()它非常具有描述性,通过以下方式在远程机器上执行一些工作:在消息总线上排队消息,表明工作应该完成远程代理接收消息并执行工作工作完成,代理在消息总线上排队消息以表明工作已完成调用工作的应用程序接收工作完成的消息我使用Task的原因是因为第一个Task用于消息的排队;而内部Task当远程机器上的工作完成时(即收到来自代理的消息时),就完成了。远程代理在工作执行期间捕获的任何异常都与完成消息一起传递,并在内部Task时重新抛出。完成。要调用此方法,我使用:awaitawaitDoSomeWorkOnARem

c# - 如何使用 Google Calendar API 创建任务

我想使用Google日历API在Google日历中创建任务。使用C#。寻找一些示例代码。 最佳答案 遗憾的是,Google日历中的任务功能没有API。虽然日历数据API非常广泛,但任务团队尚未发布API。包括您在内的许多人都请求过这样的API,但Google尚未采取任何措施来填补这一空白。DataAPI组上有很多关于这个的帖子,例如thisone.但是,Google可能很快就会发布一个。在那之前,如果你真的需要使用任务,你将不得不进行屏幕抓取。换句话说,您必须研究GCalendarUI的工作原理并模拟与之交互。有些人可能已经解决了这

c# - HttpClient GetAsync 在 Windows 8 的后台任务中失败

我有一个WinRT应用程序,它有一个后台任务负责调用API来检索它需要更新自身的数据。但是,我遇到了一个问题;在后台任务之外运行时,调用API的请求可以完美运行。在后台任务中,它失败了,并且还隐藏了任何可能有助于指出问题的异常。我通过调试器跟踪了这个问题来跟踪问题点,并验证了执行停止在GetAsync上。(我传递的URL有效,不到一秒URL响应)varclient=newHttpClient("http://www.some-base-url.com/");try{response=awaitclient.GetAsync("valid-url");//NevergetshereDeb

c# - 您可以从 .net 运行 SSIS 任务吗?

我已经安排了运行SSIS包的sql代理任务。我希望能够从.net运行SSIS包。有没有办法直接运行SSIS包或至少运行SQL代理任务,后者又会运行SSIS包。如果对用C#编写的.net3.5网络应用有帮助的话谢谢! 最佳答案 可用于运行SSIS包的选项是-使用SSIS对象模型以编程方式运行包。联机丛书中对此进行了详细讨论here.一个例子:usingSystem;usingMicrosoft.SqlServer.Dts.Runtime;namespaceRunFromClientAppCS{classProgram{staticvo

c# - 一个任务可以有多个等待者吗?

我正在研究一个Windows8项目的异步服务,该服务有一些异步调用,一次只能调用一次。publicasyncTaskCallThisOnlyOnce(){PropagateSomeEvents();awaitSomeOtherMethod();PropagateDifferentEvents();}由于您不能将异步调用封装在lock语句中,我想到了使用AsyncLock模式,但我想我不妨尝试这样的事情:privateTask_callThisOnlyOnce;publicTaskCallThisOnlyOnce(){if(_callThisOnlyOnce!=null&&_callTh

C# 代码优化导致 Interlocked.Exchange() 出现问题

我在一些代码中遇到了一个令人沮丧的问题,并且不知道为什么会出现这个问题。////.NETFRAMEWORKv4.6.2ConsoleAppstaticvoidMain(string[]args){varlist=newList{"aa","bbb","cccccc","dddddddd","eeeeeeeeeeeeeeee","fffff","gg"};foreach(variteminlist){Progress(item);}}privatestaticint_cursorLeft=-1;privatestaticint_cursorTop=-1;publicstaticvoidP

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

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

c# - 构建时启用了优化或没有调试信息

我目前正在尝试找出为什么我的InjectableAttributesnevergettothefilterpart.因此,我直接链接到源项目中,这样我就可以轻松地放置断点等。然而,当我构建时,我收到以下消息:Thefollowingmodulewasbuilteitherwithoptimizationsenabledorwithoutdebuginformation:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\TemporaryASP.NETFiles\root\[abunchofrandomlynameddirectories]\as