【C#以CPU友好的方式使事件处理线程保持活动状态】教程文章相关的互联网学习教程文章

c# – 极端线程安全集合【代码】

我在.Net 4.5中有一个ConcurrentBag,我从数据库中存储了大约4,000行.我正在存储DTO. 我的整个应用依赖于此.我有返回整个列表的函数,还有返回单个项目的函数.我的代码中有很多地方我正在对集合进行LINQ查询等. 我将它全部投入生产,在现场获得可观的流量,并立即100%cpu.我使用了iis诊断工具,果然,死锁中有50个线程,等待ConcurrentBag. 文档说这个集合是线程安全的,但要么不是这样,要么这个集合的性能不好,从而间接地使它不是线程安全...

c# – 线程安全事件 – 这是一种“干净”的方式吗?【代码】

我偶然发现了专业库中的一些代码,并且不确定这是否是一种处理跨线程事件调用的简洁方法. 下面的代码在表单应用程序中.线程调用是从一个本身启动新线程并接收消息的类中进行的:private void Library_StatusChanged(object sender, AbstractTestCase.StatusChangedEventArgs e) {if (this.InvokeRequired){this.lblProgress.Invoke((MethodInvoker)delegate (){lblProgress.Text = "Current state: " + e.Step;lblProgress.Refresh(...

c# – 如何通过相同的函数多线程我的代码同时处理多个文件?【代码】

我使用以下例程处理目录中的一组视频:AllVideos = new List<MyVideo>();for (int i = 0; i < AllVideosFileNames.Length; i++) {MyVideo CurrentVid = new MyVideo(AllVideosFileNames[i], false); // constructor (loads the video to the system) CurrentVid.PopulateAllFrames(); // Method that takes foreverCurrentVid.PopluateTestFrames(); // Method that takes less than foreverCurrentVid.NormalizeTestFrames(); // ...

c# – 从不同的线程更新对象的不同属性是否安全?【代码】

考虑下面的伪代码.我有一个具有3个属性的类,每个属性并行填充不同的方法. 我是否会遇到从单独的线程填充同一类实例的不同属性的问题?我已经设置了.net fiddle,看起来它运行正常. 如果此代码会导致线程问题,那么在填充属性时我应该使用什么方法来锁定Response类的特定实例?class Response {public string Response1 { get; set; }public string Response2 { get; set; }public string Response3 { get; set; } }void foo() {var r...

c# – 将类作为新线程运行【代码】

我想在一个新的线程中开始工作或者使用后台工作者来完成它,但之前没有这样做,并且问我应该怎样做. 我的程序有一个datagridview,其中包含一个文件列表,每行一个文件.我希望用户能够选择一行,然后按“开始下载”以开始下载的后台作业.我希望得到下载进度的事件. 我有一个类clsDownload,它处理所有事情并引发事件,但我如何实现后台工作? 我应该在类中使用System.ComponentModel.BackgroundWorker还是创建一个处理它的包装器或使用其他...

c# – XmlSchemaSet的架构验证错误/线程安全性?【代码】

下午好, XML模式验证代码段在开发/ q& a环境中正常工作,但在Production中产生了一些奇怪的验证结果.通常的怀疑是代码对于线程是不安全的,并且生产方案的额外负载正在清除错误. 具体情况如下.考虑验证的XML是:<mssql:spExecute type="ResultSet" xmlns:mssql="urn:namespace"><mssql:actor>IPASS</mssql:actor><mssql:connection>ConnectionString</mssql:connection><mssql:storedProcedure>dbo.RedFox</mssql:storedProcedure> <...

c# – 正确处理带线程的类【代码】

我有一个相当复杂的多线程Windows服务工作,但我无法弄清楚如何正确清理.下面是一些显示我拥有的[伪]代码.实际的代码要复杂得多,可能要复制/粘贴太多. 基本上,我有一个类Request创建一个线程来完成工作.当一个新请求进入监听器时,它会将它发送到处理器,处理器创建新的请求并维护请求列表.如果服务停止,我清理列表中的所有请求.但是当Request工作完成后,我该如何清理该类的一个实例? 谢谢你的帮助! 纳尔逊class Service {Listener ...

C# – 移动文件 – 到队列或多线程

我有一个应用程序,使用Flex前端和.NET Web服务将项目及其文件从预览移动到生产.目前,该过程大约需要每个项目5-10分钟.除了延迟问题,它真的不应该花那么长时间.我想知道这是否是一个很好的多线程用例.此外,考虑到用户可能想要一个接一个地推送多个项目,有没有办法排队作业. 任何建议和例子都非常感谢. 谢谢!解决方法:执行大量磁盘IO的东西通常不适合多线程,因为磁盘一次只能做一件事.但是,如果您要推送多台服务器或服务器具有特别好...

c# – LocalReport方法呈现的线程文化【代码】

我正在将一个localreport对象用于asp.net应用程序.此报告由一组对象提供.因此,在报告的呈现中,会调用classe的一些属性.Class ClassForReport {string Date{get{return _aDate.ToshortDateString();}} }现在渲染的代码和问题://first of all, I change de culture for taking in account the choice of the user CultureInfo ci = CultureInfo.CreateSpecificCulture(isoLanguageName_); Thread.CurrentThread.CurrentCulture = ci...

c# – 使用线程通过API为数千名用户导入数据【代码】

在我们的应用程序中,我们需要通过API为我的应用程序的用户导入交易数据,并存储在数据库中.我有成千上万(现在大约5k)的用户,而且它每天都在增加. 此应用程序是.net Windows服务. 这会按小时为所有用户导入数据.目前我们正在为一个用户一个接一个地导入数据,但有时会发生一个用户数据可能会如此之大以至于需要大约5小时来获取他的整个数据,所以我们阻止其他用户直到完成这个用户数据导入.所有其他用户的每小时导入完全没有折腾. 为了...

C#中,子线程与主线程之间的通信是如何实现(转)

通常我们会有这种需求: 一个支持慢速设备的处理类,如网络通信、串口通信、打印等 此时经常需要将线程封装在类里面,让类支持异步处理,然后发布事件或者回调委托通知主线程 因为类需要被封装好,对外线程是不可见的,同时类的内部也只有事件,并不涉及界面,此时Control的BeginInvoke已经无能为力了。此时我更钟情于SynchronizationContext对象,简单明了 假设我设计一个类TestClient,有个Connected事件 class TestClient {...

c# – 在实现时间受限的方法时,我应该中止工作线程还是让它运行?【代码】

我目前正在为现有应用程序编写基于Web服务的前端.为此,我使用WCF LOB Adapter SDK,它允许创建自定义WCF绑定,将外部数据和操作公开为Web服务. SDK提供了一些实现的接口,并且它们的一些方法是时间限制的:实现期望在指定的时间跨度内完成其工作或抛出TimeoutException. 调查让我想到了问题“Implement C# Generic Timeout”,明智地建议使用工人线程.有了这些知识,我可以写:public MetadataRetrievalNode[] Browse(string nodeId, in...

第十九篇 .NET高级技术之C#中的线程(一)

原文://http://www.cnblogs.com/miniwiki/archive/2010/06/18/1760540.html文章系参考转载,英文原文网址请参考:http://www.albahari.com/threading/作者 Joseph Albahari, 翻译 Swanky Wu 中文翻译作者把原文放在了"google 协作"上面,GFW屏蔽,不能访问和查看,因此我根据译文和英文原版整理转载到园子里面。 本系列文章可以算是一本很出色的C#线程手册,思路清晰,要点都有介绍,看了后对C#的线程及同步等有了更深入的理解。...

C# 多线程小试牛刀【图】

前言 昨天在上班时浏览博问,发现了一个问题,虽然自己在 C# 多线程上没有怎么尝试过,看了几遍 CLR 中关于 线程的概念和讲解(后面三章)。也想拿来实践实践。问题定义是这样的:对于多线程不是很懂,面试的时候遇到一个多线程的题,不会做,分享出来,懂的大佬指点一下,谢谢 建一个winform窗体,在窗体中放上一个开始按钮,一个停止按钮,一个文本框,在窗体中声明一个List类型的属性,点击开始按钮后开启10个线程,所有线程同时...

c# – 当多个并行线程等待然后抛出的同一个Task实例时会发生什么?【代码】

阅读answers to this question促使我思考等待任务抛出时异常情况会发生什么.所有“客户”都可以观察异常吗?我承认我可能会在这里混淆几件事;这就是我要求澄清的原因. 我将介绍一个具体的场景……假设我有一个服务器,其中包含由客户端启动的长期运行的Task实例的全局集合.在启动一个或多个任务后,客户端可以查询其进度并在结果可用时检索结果,以及可能发生的任何错误. 任务本身可以执行非常不同的业务特定事物 – 通常,没有两个是完...