gpt4 book ai didi

c# - 我可以限制我的 C# 应用程序的 I/O

转载 作者:太空狗 更新时间:2023-10-29 21:11:02 25 4
gpt4 key购买 nike

我构建了一个应用程序来处理数千个文件,然后将这些文件的修改副本写入磁盘。我使用的是 ThreadPool,但它产生了太多线程,PC 变得无响应,总共 260 个),所以我将最大值从默认的 250 降低到 50,这解决了这个问题(应用程序总共只产生了大约 60 个线程),但是既然文件准备得如此之快,它就会将 UI 捆绑到电脑无响应的地步。

有没有办法限制 I/O 的数量 - 我的意思是,我喜欢使用 50 个线程来执行文件工作,而不是在处理文件时同时写入 50 个线程。如果我可以避免的话,我宁愿不重新设计文件部分的编写 - 我希望我可以限制来自该池的线程可以消耗的 I/O(同时)量。

最佳答案

使用信号量来限制编号。希望同时写入磁盘的线程数。

http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx

Limits the number of threads that can access a resource or pool of resources concurrently.

关于c# - 我可以限制我的 C# 应用程序的 I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3408127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com