首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C#多线程并发处理的问题

    这个是由另外一个同事写的,写完之后测试,速度、效率都非常低。我问了下,原来是直接拿这些数据进行循环处理,之后又把有问题的数据循环入库。...我给出的建议是,处理数据部分多线程,处理完数据之后直接把有问题的数据入库。可是同事用不明白多线程,那好吧,我给写个Demo吧。 这里需要用到队列(Queue)和Task或Thread。...我这里使用的是ConcurrentQueue,ConcurrentQueue队列是一个高效的线程安全的队列,是.Net Framework 4.0,System.Collections.Concurrent...命名空间下的一个数据结构。...首先,实例化一个队列,名为queue: private ConcurrentQueue queue; 之后,给这个队列填充上测试用的数据: //生成测试用数据列表 for (int

    5.8K30

    C# StreamReader.ReadLine统计行数的问题

    为了防止出现:新增了一个 key,或者某个 key 对应的中文有修改,所以在替换的时候有严格的检查。必须该行的 key、value,都存在于 excel 中,才替换相应的内容(仅一次)。...假设韩文或者越南文,我们肯定希望知道这个字符串所表示的含义,故特地将中文保留下来。...讲到这里,基本都是在讲该功能的一些实现细节。在替换我提交SVN的时候,我就发现,明明该lua文件有3405行,但只显示3404行,最后一行是换行符,被干掉了。然后我查代码,发现没问题,被狗吃了?...如果我额外加5行,显示结果是3409,说明加的5行都识别了,并没有对我添加的换行有特殊处理。 但最后一行换行就是不被读取。所以,我怀疑ReadLine方法压根就没读最后一行。...返回的字符串不包含终止回车或换行。 返回的值是 null 如果到达了输入流的末尾。 所谓“终止”回车或换行,指的就是上面遇到的,文件最后一行是如果是换行\回车,它不会读取最后一行。

    2K10

    C#学习笔记 线程同步问题

    这是用C#提供的各种类实现的几个线程同步问题。 生产者消费者问题 生产者消费者问题大体是这样的:有几个生产者和几个消费者,共享一个缓冲区。生产者会向缓冲区中添加数据;消费者会从缓冲区中将数据取走。...需要处理这两者之间的同步问题。 这里先定义一个自己的线程安全队列。该队列使用两个信号量来处理同步问题。另外在进行操作的时候需要锁定临界区,这里使用lock语句实现。...哲学家问题是这样的:有若干个哲学家围坐在一个圆桌前,有同样数量的筷子均匀放在每个哲学家之间。...C#中包含了一个读写锁ReaderWriterLockSlim,专门用来解决读者写者问题的。因此这里就直接使用这个类来实现。...学生老师问题 这个问题的情景如下:有多个学生同时做作业,所有作业都完成之后通知老师开始批改作业。

    35720

    C# 解决 Excel 自动适应列宽的问题

    问题现象 通过 COM 操作 Excel 自动适应列宽的方法是 AutoFit 方法,该方法适于自动适应列宽或行高。...列宽的值可以设置0到255的数值,在 C# 中列宽(ColumnWidth)是一个 dynamic 类型,如下示例代码: Range _range=excel.Range[excel.Cells[1,1...(3)如果单元格设置为自动换行,我们将列宽手动调大于多行文字显示的长度,双击后将成功自动适应为最大文字长度的合适列宽。 因此我们可以使用 C# 模拟情况(3)的操作来解决情况(2)的问题。...范例运行环境 操作系统: Windows Server 2019 DataCenter .net版本: .netFramework4.0 或以上 Office Excel 2016 开发工具:VS2019 C#...解决问题 生成测试文本 我们假设生成了如下 HtmlTable 表格内容: 姓名 与本人关系 政治面目 工作单位 职务 姓名1 父亲 群众 工作单位工作单位 工人 姓名2 母亲 群众 工作单位2 员工

    11410

    C# 多线程之List的线程安全问题

    网上关于List的线程安全问题将的很少,所以自己实验了一把,发现确实是线程不安全的.所以当你在进行多线程编程中使用了共享的List集合,必须对其进行线程安全处理....List的Add方法是线程不安全的,List的源码中的Add方法,使用了每次当当前的元素达到上限,通过创建一个新的数组实例,并给长度翻倍的操作.如果单线程操作不会有问题,直接扩容,然后继续往里面加值。...也就是说,当多个线程同时添加元素,且刚好它们都执行到了扩容这个阶段,当一个线程扩大了这个数组的长度,且进行了+1操作后,另外一个线程刚好也在执行扩容的操作,这个时候它给Capacity的值设为2048,..._size设为2049了,所以这个时候就报异常了.当然不止这一个问题,还有Copy的时候也会出问题,如果里面的元素过多,另外一个线程拿到空值的几率很大....{ list.Add(i); } } } } ok,解决了问题

    4K50

    C#实现约瑟夫环数学问题

    在人数不多的情况下这个问题很好推算,假设总人数10人的前置条件。...把总人数和最终存活的位置整理成图表的话大致如下: 最终我们发现,活下来的都是奇数位。因为最先杀人的士兵都处在奇数位置,不管人数多少最先被kill掉的肯定是站在偶数位置上的人。...第二点我们在图表中多次发现存活位置1,也就是士兵1最后会存活的情况的总人数些情况恰好是2的N次方。...按照这个逻辑如果士兵总人数是2的N次方的情况下最后存活的一定是士兵1。 如果人数是19不是2的N次方怎么办? 如果人数是19不是2的N次方但仍可以把19写成3+2的4次方。...C#代码 /// /// 约瑟夫一下 /// /// 总人数 ///

    32810

    如何构建自己的PHP静态可执行文件

    介绍 static-php-cli 是一个用于构建静态编译的 PHP 二进制的工具,目前支持 Linux 和 macOS 系统。...对于未经过测试的发行版,可以使用 Docker 等方式本地编译,避免环境导致的问题。 macOS 下支持 x86_64 和 Arm 两种架构,但在其中一个架构上编译的二进制无法直接在另一个架构上使用。...但由于部分扩展和特殊组件已对早期版本的 PHP 停止了支持,所以 static-php-cli 不会明确支持早期版本。我们推荐你编译尽可能新的 PHP 版本,以获得更好的体验。...本地构建 手动构建 本项目提供了一个 static-php-cli 的二进制文件,你可以直接下载对应平台的二进制文件,然后使用它来构建静态的 PHP。.../spc --version static-php-cli 2.3.2 下载依赖包 使用命令bin/spc download可以下载编译需要的源代码,包括 php-src 以及依赖的各种库的源码。

    23210

    谈谈 c# 对象初始化问题 C#对象初始化

    C#对象初始化 之前在学习过程中只是知道该如何初始化对象,但是却不明白为何要这么做,不这么做有什么问题。...现在就针对我最近遇到的问题(定义了全局字节数组没有初始化,然后在多线程里头使用,然后就一直报null的错误,一开始也没有想到是初始化的问题,就一直以为是通讯中断,数组没有赋值成功,调了一段时间,检查了一下代码...C# 引用类型和值类型 1、引用类型 FCL(Framework)中的大多数类型都是引用类型,引用类型总是在托管堆中分配的,C#的new操作符会返回对象的内存地址,也就是指对象数据的内存地址。...在使用引用类型时,存在以下性能问题,这是我们在开发中必须要注意的: a、内存必须从托管堆上分配(也就是说每new一个对象,会占用内存,对象过多就会导致内存占用) b、 堆上分配的每个对象都有一些额外的成员...关于值类型和引用类型相信你们会遇到装箱拆箱的问题。 我暂时没时间去写,这些博客写的蛮好的,你们可以参考一下。

    1.7K20
    领券