草庐IT

完成率

全部标签

c# - Task.WaitAll 不等待任务完成

在尝试弄清楚C#中的新(现在可能不是那么新,但对我来说还是新的)Task异步编程时,我遇到了一个问题,我花了一些时间才弄明白,我不确定为什么。我已经解决了这个问题,但我仍然不确定为什么它是一个问题。我只是想我会分享我的经验,以防有人遇到同样的情况。如果有任何专家愿意告诉我问题的原因,那将是非常好的,我们将不胜感激。我总是喜欢知道为什么某些东西不起作用!我做了一个测试任务,如下:Randomrng=newRandom((int)DateTime.UtcNow.Ticks);intdelay=rng.Next(1500,15000);Task>testTask=Task.Factory.S

c# - 调用 Dispose() 与对象超出范围/方法完成时的对比

我有一个方法,里面有一个try/catch/finalyblock。在tryblock中,我声明SqlDataReader如下:SqlDataReaderaReader=null;aReader=aCommand.ExecuteReader();在finallyblock中,手动处理的对象是那些在类级别设置的对象。那么实现IDisposable的方法中的对象,比如上面的SqlDataReader,它们会被自动释放吗?Close()在while循环执行后调用aReader以获取阅读器的内容(应该是Dispose(),因为调用关闭())。如果没有调用Close(),该对象是否会在方法完成或

C# Struct 没有无参数构造函数?看看我需要完成什么

我正在使用结构传递给非托管DLL-[StructLayout(LayoutKind.Sequential)]publicstructvalTable{publicbytetype;publicbytemap;publicbytespare1;publicbytespare2;publicintpar;publicintmin;publicbyte[]name;publicvalTable(){name=newbyte[24];}}上面的代码将无法编译,因为VS2005会提示“Structscannotcontainexplicitparameterlessconstructors”。为

c# - 如何在 Visual Studio 中获取参数提示/完成?

我通常使用Eclipse进行编码,它有一个非常好的参数完成功能:当你调用一个方法时,在你输入(之后,它会显示参数列表,并突出显示键入时您所在的位置:如何在VisualStudio2012中获得类似的帮助?我知道Ctrl+K,Ctrl+I会显示一些关于您的光标当前突出显示的内容的信息,但如果您已经开始输入内容,它就不起作用。如果我键入MyMethod(arg1,然后点击快捷方式(或任何其他方式,例如Ctrl+Space或Ctrl+Shift+Space),我没有得到任何有用的东西。 最佳答案 您可以使用:Ctrl+Shift+空格键。

c# - 从未完成的任务会怎样?他们是否妥善处置?

假设我有以下类(class):classSomeClass{privateTaskCompletionSource_someTask;publicTaskWaitForThing(){_someTask=newTaskCompletionSource();return_someTask.Task;}//Othercodewhichcalls_someTask.SetResult(..);}然后在别处,我调用//Somecode..awaitsomeClassInstance.WaitForThing();//Somemorecode在调用_someTask.SetResult(..)之

c# - Roslyn 中的简单代码完成示例

我想开始使用Roslyn中的代码完成,但找不到任何简单的示例来说明如何进行代码完成。什么是完成此代码的好示例,以便我可以在caretIndex获得所有可能的完成项(AKAIntellisense或CTRL+Space完成)?staticvoidMain(string[]args){varcode=@"usingSystem;publicclassTest{publicvoidTestMethod(){varnow=DateTime.Now;now.}}";Console.WriteLine(code);varst=SyntaxTree.ParseText(code);varcaretI

c# - 为什么任务甚至在等待中完成

我在下面的代码中遇到问题:staticvoidMain(string[]args){TasknewTask=Task.Factory.StartNew(MainTask);newTask.ContinueWith((TasksomeTask)=>{Console.WriteLine("MainState="+someTask.Status.ToString()+"IsFaulted="+someTask.IsFaulted+"isComplete="+someTask.IsCompleted);});while(true){}}staticasyncTaskMainTask(){Con

c# - 类似于 "using"的东西,它会创建一个对象并在完成后调用它的方法,但让我在两者之间做我想做的事

我正在使用Lidgren,对于我发出的每一种新消息,我最终都会编写相同类型的代码。我正在创建NetOutgoingMessage的实例,对其运行各种赋值调用,然后在完成后发送它。创建和发送是一样的,所以我想写一个包装器来为我做这件事,但它是一个sealed类而且它不是IDisposable。我正在做的是这样的:NetOutgoingMessageom=server.CreateMessage();om.Write(messageType);om.Write(data1);om.Write(data2);server.SendMessage(om,server.Connections,N

c# - 如何创建任务<>我可以手动完成

在对组件进行单元测试时,我需要验证组件如何对在不同时间完成的任务使用react。如何创建Task我可以随意解决? 最佳答案 您可以使用TaskCompletionSource创建一个完全“手动”的任务。RepresentstheproducersideofaTaskunboundtoadelegate,providingaccesstotheconsumersidethroughtheTaskproperty.将完成源的Task属性交给消费者,并(随意)调用SetResult来完成任务。请注意,您还有SetCanceled和SetE

c# - 如何让 VS10 Intellisense 在输入时完成推荐成员?

我一直在试用VisualStudio2010的CTPBeta1,我讨厌VS10在我按“输入”或“.”时不会自动完成最佳匹配。VisualStudio2008做到了这一点,我无法在工具->选项->文本编辑器下找到任何选项。每次按下回车键(换行)都会打断我的流程,而且我似乎从来没有真正习惯过。必须先向上按,然后向下按,然后输入,才能自动完成建议的成员名称,这并不太好。另外,如果有任何快捷方式可以自动完成(未选择的)关键字,我也会很高兴。 最佳答案 正如aaaaaa所说,VisualStudio2010中有两种IntelliSense模式