草庐IT

TASK_RUNNING

全部标签

C# 图像.FromStream() : Lost metadata when running in Windows 8/10

我有一个从Web服务检索图像的应用程序。在发送到C#客户端之前,Web服务会将一些元数据嵌入到图像中。这是方法的一部分。它从Response对象中检索Stream,并从该流中创建一个Image。请注意,我使用的是System.Drawing.Image,而不是System.Windows.Controls.Image-这意味着我不能使用任何ImageSource或BitmapSource。System.Drawing.Imageimg=null;using(HttpWebResponseresponse=request.GetResponse()asHttpWebResponse){S

c# - Task.Start .NET CORE 无法加载 DLL combase.dll 错误 Windows 7

我们有一些代码利用了基本的C#Task对象。但是,在Windows7计算机上进行开发时,尝试运行Task.Start();会导致:Exceptionthrown:'System.DllNotFoundException'inSystem.Private.CoreLib.ni.dllAdditionalInformation:UnabletoloadDLL'combase.dll':thespecifiedmodulecouldnotbefound(ExceptionfromHRESULT:0x8007007E)在Windows10开发机器上运行此代码时一切正常。在研究适用于Window

c# - 使用 Task.Factory.StartNew().ContinueWith() 的单元测试代码

所以我有一些代码Task.Factory.StartNew(()=>this.listener.Start()).ContinueWith((task)=>{if(task.IsCompleted){this.status=WorkerStatus.Started;this.RaiseStatusChanged();this.LogInformationMessage("WorkerStarted.");}});当我测试时,我正在模拟所有依赖对象(namleythis.listener.Start())。问题是测试在调用ContinueWith之前完成执行。当我调试时,由于我单步执行代

c# - 预定义类型 'System.Threading.Tasks.Task' 在全局别名的多个程序集中定义

我刚刚建立了一个新的asp.netmvc4项目,结合使用最新的.net框架(4.5)和VisualStudio2012。在我添加了一些类、辅助项目等之后。我突然注意到我编译项目时收到5次相同的警告。警告指出:ASPNETCOMPILER:warningCS1685:Thepredefinedtype'System.Threading.Tasks.Task'isdefinedinmultipleassembliesintheglobalalias;usingdefinitionfrom'c:\ProgramFiles(x86)\ReferenceAssemblies\Microsoft\

c# - 在 .NET 4 中,BeginInvoke 和 Task 是否使用相同的线程池?

.NET4引入了全新的线程池设计,可由任务并行库访问。但是,如果我有使用Delegate.BeginInvoke的旧代码,这些代码会由那个新线程池执行吗?或者旧的线程池是否仍在运行时的某个地方? 最佳答案 它们都使用相同的线程池。ThreadPool.QueueUserWorkItem也是如此。但是,与Task.Factory.StartNew相比,Delegate.BeginInvoke有额外的开销,并且没有利用ThreadPool中的许多功能,例如工作窃取或新的调试功能.如果时间允许,我建议重构它以使用新的任务功能。

c# - 什么是 Task.RunSynchronously?

我只是想知道这个方法有什么用?在什么样的场景下我可以使用这个方法。我最初的想法是RunSynchronously用于调用异步方法并同步运行该方法,而不会像.wait()那样导致死锁问题。然而,根据MSDN,Ordinarily,tasksareexecutedasynchronouslyonathreadpoolthreadanddonotblockthecallingthread.TasksexecutedbycallingtheRunSynchronously()methodareassociatedwiththecurrentTaskSchedulerandarerunonthe

c# - 返回 Task 的方法应该抛出异常吗?

返回Task的方法有两个报告错误的选项:立即抛出异常返回将异常结束的任务调用者是否应该期望两种类型的错误报告,或者是否有一些标准/协议(protocol)将任务行为限制为第二种选择?例子:classPageChecker{TaskCheckWebPage(stringurl){if(url==null)//ArgumentcheckthrowException("BadURL");//Someothersynchronouscheckif(!HostPinger.IsHostOnline(url))throwException("Hostisdown");returnTask.Fact

c# - 静态初始化器中的 Task.Run

考虑以下代码。staticclassX{publicstaticintValue=Task.Run(()=>0).Result;}classProgram{staticvoidMain(string[]args){varvalue=X.Value;}}调用Task.Run然后在静态初始化程序中调用Result会导致程序永久卡住。为什么? 最佳答案 您在CLR的类初始化锁上看到了死锁。基本上,课上什么都没有X可以在类初始化之前使用。但是你的匿名方法()=>0被编译为该类的成员。在Task之前,类初始化不会完成可以完成,但是Task无法

c# - "The debugger cannot continue running the process."

我一直在搞乱VS2010调试设置,试图让.NETFramework正常工作。好吧,我无法让它工作。我也尝试过ReflectorVS插件,它曾一度有效。然后我随机开始收到这个错误:当我在调用IEnumerable.ToList()的行上设置断点时,这仅发生.如果我尝试单步跳过或单步进入我设置断点的那一行,我会收到此错误对话框并且我的调试session结束。如果我将断点移动到下面的行,调试器会使其通过ToList()打电话!我试过以下方法都无济于事:删除Reflector插件。在“工具”>“选项”>“调试”窗口中撤消我的更改(取消选中进入.NETFramework的选项;取消选中源服务器选

c# - Task.Run 和 Task.Factory.StartNew 之间不同的异常处理

我在使用Task.Factory.StartNew并trycatch抛出的exception时遇到问题。在我的应用程序中,我有一个长时间运行的任务,我想将其封装在Task.Factory.StartNew(..,TaskCreationOptions.LongRunning);但是,当我使用Task.Factory.StartNew时,异常没有被捕获。然而,当我使用Task.Run时,它的工作方式与我预期的一样,我认为它只是Task.Factory.StartNew的包装器(根据例如thisMSDNarticle).此处提供了一个工作示例,不同之处在于使用Task.Run时将异常写入控