草庐IT

thread_blocked

全部标签

c# - XmlWriter : is calling Close() required if using a using block?

使用usingblock(不调用Close())创建XmlWriter是否足够,还是使用try/finallyblock并在finally中调用Close()更好? 最佳答案 usingblock是try/finallyblock的快捷方式,它在任何实现IDisposable的对象上调用Dispose()。对于流和流编写器,Dispose()通常手动调用Close()。使用反射器,这里是XmlWriter的Dispose方法:protectedvirtualvoidDispose(booldisposing){if(this.Wri

c# - linq 按连续 block 分组

假设我有以下数据:TimeStatus10:00On11:00Off12:00Off13:00Off14:00Off15:00On16:00On我如何使用Linq将其分组为类似的东西[On,[10:00]],[Off,[11:00,12:00,13:00,14:00]],[On,[15:00,16:00]] 最佳答案 创建一个GroupAdjacent扩展,例如列出的here.然后就这么简单了:vargroups=myData.GroupAdjacent(data=>data.OnOffStatus);

c# - 使 System.Threading.Timer 无效会停止吗?

如果我有一个活跃的System.Threading.Timer我将它设置为null,它停止了吗?我意识到调用.Dispose()更合适,但我想要问题的答案。publicclassFoo{privateSystem.Threading.Timer_timer;publicFoo(){//initializetimer}publicvoidKillTimer(){_timer=null;}}更新:经过反复讨论是否将对System.Threading.Timer的单个引用设置为null确实会导致停止它表明没有挥之不去的引用,例如事件列表,因为线程计时器接受单一回调并且不公开事件。如果GC收集

c# - Dispatcher.BeginInvoke ,尝试使用 lambda 从文本 block 获取字符串集,但出现转换错误

我试图从按钮调用选定的列表框项目,而不是wpf中的listbox.selecteditemchanged方法。所以当我尝试stringyadda=listbox.SelectedItem.ToString();我得到一个异常(exception):Thecallingthreadcannotaccessthisobjectbecauseadifferentthreadownsit.所以,我想做的是:Dispatcher.BeginInvoke(()=>{lbxSelectedItem=(lbxFileList.SelectedItemasTextBlock).Text;});这也不起作

c# - 在 Xamarin.Forms 中使用 Thread.Sleep

我要执行以下操作MainPage=newContentPage{Content=newStackLayout{Children={newButton{Text="Thread.Sleep",Command=newCommand(()=>{Thread.Sleep(1000);MainPage.Animate("",x=>MainPage.BackgroundColor=Color.FromRgb(x,x,x));}),},newButton{Text="Task.Run+Thread.Sleep",Command=newCommand(async()=>{awaitTask.Run((

c# - 等待和异步属性中的方法错误 'Cannot await ' System.Threading.Tasks.Task'

我已经为.NETFramework4、Silverlight4和5以及WindowsPhone7.5和8安装了NuGetPackageAsync。Version1.0.16我使用的是Microsoft.NET4.0,但由于虚拟主机包限制,我无法升级。(可悲!)我的测试代码:(我正在执行LinqtoSQL查询代替Thread.Sleep)publicclassSearch{publicasyncTask>GetResults(stringSearchString){awaitSystem.Threading.Tasks.Task.Factory.StartNew(()=>Thread.S

c# - 在 C# 下,try、throw 和 catch block 对性能的影响有多大

首先声明:我有使用其他语言的经验,但仍在学习C#的精妙之处关于问题...我正在查看一些代码,它以我关心的方式使用try/catchblock。当调用解析例程时,程序员没有返回错误代码,而是使用了以下逻辑catch(TclExceptione){thrownewTclRuntimeError("unexpectedTclException:"+e.Message,e);}这被调用者捕获,抛出相同的错误......被调用者捕获,抛出相同的错误........被调用者捕获,抛出相同的错误......备份大约6个级别。我是否认为所有这些catch/throwblock都导致了性能问题,或者这是

c# - Unity 应用程序 block 2.0 - 给定的程序集名称或代码库无效

接口(interface)(在名为“Interfaces”的程序集中。在项目中:-Interfaces)namespaceInterfaces{publicinterfaceIDoSomeWork1{stringDoSomeWork1();}}namespaceInterfaces{publicinterfaceIDoSomeWork2{stringDoSomeWork2();}}依赖项(在名为“Entities”的程序集中。在项目中:-Entities)namespaceEntities{publicclassClassB:IDoSomeWork1{publicstringDoSom

c# - 如果从 C# 中的 try 或 catch block 返回,finally block 是否会被执行?如果是这样,是在返回之前还是之后?

没有可用的内容! 最佳答案 是的,执行了finallyblock,但是流程离开了tryblock-无论是到达结尾、返回还是抛出异常。来自C#4规范,第8.10节:Thestatementsofafinallyblockarealwaysexecutedwhencontrolleavesatrystatement.Thisistruewhetherthecontroltransferoccursasaresultofnormalexecution,asaresultofexecutingabreak,continue,goto,orr

c# - 在 finally block 中访问函数返回的值

我想知道是否可以在finallyblock中获取函数的返回值。我有一些这样的代码。try{return1;}finally{//Getthevalue1}我知道可以通过添加一个可以保存返回值的变量来实现。但我想知道是否有可能以任何方式获得值(value)。谢谢 最佳答案 不,你不能那样做。 关于c#-在finallyblock中访问函数返回的值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques