jjzjj

c# - 将参数传递到 Task.Factory.StartNew

给定以下代码:stringinjectedString="ReadstringoutofHttpContext";Task.Factory.StartNew(()=>{MyClassmyClass=newMyClass();myClass.Method(injectedString);}这是将字符串传递到任务/线程的最佳方式吗?我对这种方法的担忧是:垃圾收集器会知道字符串什么时候失效吗?上下文并正确清理它?有没有更好的方法将依赖项注入(inject)任务,从而打破主线程中对象的链接?这是在Asp.Net网络服务中,如果它很重要并且是一个即发即忘类型的线程,我不会等待任何类型的响应。我的

C# 任务工厂超时

我必须在一个线程中执行一个长进程操作,然后将结果返回给一个函数来继续。这是我的代码:Task.Factory.StartNew(()=>{try{//longoperationwhichreturnnewProductEventArgswithalistofproduct}catch(Exceptione){returnnewProductEventArgs(){E=e};}}).ContinueWith((x)=>handleResult(x.Result),TaskScheduler.FromCurrentSynchronizationContext());问题实际上是我没有超时。

c# - 带有未捕获异常的 Task.Factory.StartNew 会杀死 w3wp?

我刚刚将我网站的一些代码从使用QueueUserWorkItem转换为Task.Factory.StartNew我有一些错误的代码引发了异常并最终关闭了w3wp。在WindowsServer2008R2、x64上运行IIS7.5Task.Factory.StartNew(()=>{MethodThatThrowsException();}Application:w3wp.exeFrameworkVersion:v4.0.30319Description:Theprocesswasterminatedduetoanunhandledexception.ExceptionInfo:Syst

c# - 我的 DDD 工厂类中应该有哪些方法?

我很难理解我的工厂类在我的DDD项目中应该做什么。是的,工厂应该用于创建对象,但它究竟应该做什么。考虑以下工厂类:publicclassProductFactory{privatestaticIProductRepository_repository;publicstaticProductCreateProduct(){returnnewProduct();}publicstaticProductCreateProduct(){//Whatelsewouldgohere?}publicstaticProductGetProductById(intproductId){//Shouldi

c# - 构造函数应该解析输入吗?

通常,我发现我必须实例化一堆对象,但我发现将此实例化的参数作为人类可读的文本文件提供更容易,我手动编写并将其作为输入输入到程序中。例如,如果对象是Car,那么文件可能是一堆行,每行包含名称、速度和颜色(三个必需的构造函数参数),用制表符分隔:Mycar65RedArthur'scar132PinkOldjunkcar23Rustbrown这对我来说很容易进行目视检查、修改或由另一个程序生成。然后程序可以加载文件,获取每一行,解析出相关参数,将它们提供给Car(stringname,intspeed,uintcolor)构造函数并创建对象。请注意在与构造函数兼容之前必须对输入做一些工作:

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#工厂模式和IoC的区别

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DependencyInjectionvsFactoryPattern有人能解释一下(用简单的例子)工厂模式和控制反转模式之间的区别吗?最好使用.NET2.0

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时将异常写入控

c# - 带有 CancellationTokenSource 的 Task.Factory.FromAsync

我有以下代码行用于从NetworkStream异步读取:intbytesRead=awaitTask.Factory.FromAsync(this.stream.BeginRead,this.stream.EndRead,buffer,0,buffer.Length,null);我想让它支持取消。我知道我可以canceltasksusingaCancellationTokenSource,但是我看不出有什么方法可以将它传递给TaskFactory.FromAsync().是否可以使FromAsync()构造的任务支持取消?编辑:我想取消一个已经在运行的任务。

c# - 如何强制 Task.Factory.StartNew 进入后台线程?

我已经看到许多其他类似的问题,但没有在那里找到我的答案。我的问题是我正在使用以下流程创建线程:privatevoidbtn_Click(objectsender,EventArgse){service.GetCount((count,ex)=>{if(ex!=null)return;for(inti=0;icallback){varcallingThread=TaskScheduler.FromCurrentSynchronizationContext();Funcaction=()=>{returnclient.GetCount();//Synchronousmethod,could