草庐IT

syscall_thread_switch

全部标签

c# - 在 Switch 语句中使用 .StartsWith?

我正在处理一个Switch语句,并且有两个条件我需要查看值是否以特定值开头。Switch语句就是这样做的。错误显示“无法将类型bool转换为字符串”。有人知道我是否可以在Switch中使用StartsWith或者我是否需要使用If...Else语句?switch(subArea){case"4100":case"4101":case"4102":case"4200":return"ABC";case"600A":return"XWZ";casesubArea.StartsWith("3*"):casesubArea.StartsWith("03*"):return"123";defau

c# - 在 Windows 服务中使用 Thread.Sleep()

我正在编写一个需要长时间休眠的Windows服务(最长休眠时间为15小时,最短时间为30分钟)。我目前正在使用Thread.Sleep(calculatedTime)将我的代码置于sleep模式。Thread.Sleep是最好的选择还是我应该使用计时器?我已经用谷歌搜索了一段时间,但找不到简洁的答案。由于这是一个Windows服务,我不必担心锁定UI,所以我想不出不使用Thread.Sleep的理由。如有任何见解,我们将不胜感激。 最佳答案 我会使用计时器Thread.Sleep,它可能会导致阻塞,从而阻止服务关闭。如果间隔如此广泛

c# - "Current thread must be set to single thread apartment (STA)"将字符串复制到剪贴板时出错

我试过来自HowtocopydatatoclipboardinC#的代码:Clipboard.SetText("Test!");我得到这个错误:Currentthreadmustbesettosinglethreadapartment(STA)modebeforeOLEcallscanbemade.EnsurethatyourMainfunctionhasSTAThreadAttributemarkedonit.我该如何解决? 最佳答案 如果您无法控制线程是否以STA模式运行(即测试、插件到其他应用程序或只是一些随机发送该调用以在无

c# - 有没有办法让我的 switch/case 进入 C# 中的下一个 case?

我正在使用switch/case语句来处理已部署应用程序的一些更新。基本上,我想通过案例瀑布来执行从当前运行版本到最新版本的更新。从对我大喊大叫的VisualStudio中,我了解到C#不允许进入下一个案例(这正是我想要做的)。来自thisquestion,我学会了如何做我想做的事。但是,这显然仍然是一个错误。我得到的是switch(myCurrentVersion){casenull:case"":case"0":UpdateToV1();gotocase"1";case"1":UpdateToV2();}我在case"1":行收到以下错误:Error1Controlcannotfa

c# - 什么时候用Task,什么时候用Thread?

我刚刚问了有关Task的问题,但意识到我实际上想问更一般的问题。有人可以总结一下任务和线程的优缺点。如何理解我应该使用任务还是线程? 最佳答案 Task是以异步方式执行某事的命令。Thread实际上是OS内核对象,它执行所请求的内容。将Task想象成一个聪明的线程聚合器/组织器,它“知道”在您的CPU上同时运行多少任务更好。它只是比多线程的常见实现更聪明(这就是为什么建议选择Microsoft的原因)。此功能可帮助您以更轻松的方式管理Threads。也看看这个ShouldiuseThreadPoolsorTaskParallelLi

c# - 为什么 GC System.Threading.OverlappedData 需要这么长时间?

我正在通过内存分析器运行我的应用程序以检查是否有泄漏。事情似乎有点好,但我得到了很多这些OverlappedData,它们似乎在终结器队列中徘徊,几乎什么都不做。它们是重叠IO的结果,已通过关闭连接两端的底层NetworkStream取消。网络流本身被释放。任何地方都没有NetworkStream的实时实例。通常,它们Root于称为OverlappedDataCacheLine的东西。我做的第一件事就是在回调中调用EndRead,所以没有调用BeginRead应该没有相应的EndRead。这是一个非常典型的外观,表明谁将它从工具中取出最后它确实得到了GC,但它需要永远-当我开始大约一千

c# - 如何优雅地停止 System.Threading.Timer?

我有一个用C#实现的Windows服务,它需要经常做一些工作。我已经使用System.Threading.Timer实现了这一点,该回调方法负责安排下一个回调。我无法优雅地停止(即处理)计时器。以下是您可以在控制台应用程序中运行的一些简化代码,可以说明我的问题:constinttickInterval=1000;//onesecondtimer=newTimer(state=>{//simulatesomeworkthattakestensecondsThread.Sleep(tickInterval*10);//whentheworkisdone,schedulethenextcal

c# - 从 WindowsIdentity 和 Thread.CurrentPrincipal 检索 WindowsPrincipal 之间有什么区别?

我正在尝试弄清楚为什么基于属性的安全性在WCF中没有像我预期的那样工作,我怀疑它可能与以下内容有关:AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);varidentity=newWindowsIdentity("ksarfo");varprincipal=newWindowsPrincipal(identity);Console.WriteLine("\nCheckingwhethercurrentuser["+identity.Name+"]ismemberof["+groupN

c# - Razor CSHTML 中的 Switch 语句

我正在ASP.NETMVC4、Twitter.Bootstap3.0.0和Razor中开发一个项目。在View中,我需要根据属性值显示按钮。使用switch语句,下面的示例不起作用(不显示任何内容):@switch(Model.CurrentStage){caseEnums.Stage.ReadyToStart:Html.ActionLink(Language.Start,"Start",new{id=Model.ProcessId},new{@class="btnbtn-success"});break;caseEnums.Stage.Flour:Html.ActionLink(La

c# switch 语句比 vb.net 'case' 更受限制

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我正在阅读一篇有趣的文章here它提出了一个关于vb.net中的“case”语句与C#中的“switch”语句的有趣观点,我已将其粘贴在下面:以下VisualBasicSelectCase语句无法在C#中用单个switch语句表示:DimConditionAsInteger=55SelectCaseConditionCase1,3To5,10,12,14