草庐IT

last_lock_in_thread

全部标签

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# - Azure 网站不断抛出错误 "An attempt was made to access a socket in a way forbidden by its access permissions"

我有一个网站在专用的Azure计划中作为Web应用程序运行。它连接到Redis、SQLAzure和MongoDB后端。该网站现在已经运行良好数周,然后没有任何新代码,我现在收到很多套接字异常,如下所示。试图以访问权限禁止的方式访问套接字。网站在连接到Redis、SQLAzure和MongoDB时间歇性地出现错误,这毫无意义。我更改了网站的定价层,这会将网站从一个虚拟机转移到幕后的另一个虚拟机,错误消失了几天又回来了。我刚刚将站点从S3更改为S2(使其更小),它们已经消失,但我不知道会持续多久。我该如何解决?Azure是否限制站点的套接字数量?Azure中的某个站点是否存在某些可能导致此

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# WPF 附加属性 - 错误 : "The property does not exist in XML namespace"

我需要为现有的WPF控件(组框、文本框、复选框等)创建一个新属性,该属性将存储其访问级别,因此我找到了附加属性。我以这个网站为例http://dotnetbyexample.blogspot.com.br/2010/05/attached-dependency-properties-for.html一切都很好,但是当我尝试在某些控件上使用它时出现以下错误...Error1Theproperty'DependencyPropertiesHoster.AcessLevel'doesnotexistinXMLnamespace'clr-namespace:ImageGUI.App_Code;

c# - 带有 Attach() 的 LINQ To SQL 异常 : Cannot add an entity with a key that is already in use

考虑这个典型的断开连接的场景:使用LINQToSQL从SQLServer加载客户对象用户编辑实体,表示层发回修改后的实体。数据层,使用L2S,必须将更改发送到SQLServer考虑这个LINQToSQL查询,其目的是获取客户实体。CustcustOrig=db.Custs.SingleOrDefault(o=>o.ID==c.ID);//gettheoriginaldb.Custs.Attach(c,custOrig);//wedon'thaveaTimeStamp=Truepropertydb.SubmitChanges();DuplicateKeyException:Cannota

c# - 如何修复 "The requested resource is in use. (Exception from HRESULT: 0x800700AA)"

我该如何解决这个错误?"Therequestedresourceisinuse.(ExceptionfromHRESULT:0x800700AA)".这在使用C#.NET中的WebBrowser控件导航到其他网站时出现。为什么? 最佳答案 如果当前正在处理导航操作,或者控件中的任何阻止对话框当前处于打开状态(包括上下文菜单、Javascript警报、NTLM登录对话框等),则WebBrowser控件被视为“正在使用”。您可以使用WebBrowser.IsBusy属性来检测这些状态。如果由于当前导航操作不完整,您可以尝试停止当前导航(

c# - "WHERE x IN y"子句与 dapper 和 postgresql 抛出 42601 : syntax error at or near\"$1\"

我有一个字符串数组,我想要一个包含IN子句的查询,例如:"...WHEREt.nameIN('foo','bar','baz')..>"这是我的查询的最后一部分,其中包含一个“whereXinY”子句:...leftjoingenre_tag_band_jointjonhb.id=tj.band_idorob.id=tj.band_idleftjoingenre_tagstontj.genre_tag_id=t.idinnerjoinvenuesvone.venue_id=v.idwheret.nameIN@tagsParam...我这样调用Dappervarshows=con.Que

c# - 跳过并取 : An efficient approach to OFFSET LIMIT in EF 4. 1?

以下代码:using(vardb=newEntities()){db.Blogs.First().Posts.Skip(10).Take(5).ToList();}将生成以下SQL:--statement#1SELECTTOP(1)[c].[Id]AS[Id],[c].[Title]AS[Title],[c].[Subtitle]AS[Subtitle],[c].[AllowsComments]AS[AllowsComments],[c].[CreatedAt]AS[CreatedAt]FROM[dbo].[Blogs]AS[c]--statement#2SELECT[Extent1]