文件上传程序的 C# 线程

本文关键字:线程 程序 文件 | 更新日期: 2023-09-27 18:36:02

我正在使用 c# winform我有一个文件列表。使用循环,我需要将所有文件(5000 张图像)上传到另一台服务器,如何使用多线程实现它还有一点我怎么知道一个线程何时完成,然后将其用于下一个等待上传的文件,我需要使用 monitor 类吗?

文件上传程序的 C# 线程

您可以使用 PLINQ 来实现这一点:

IEnumerable<string> yourFiles = new[]{ "C:''file.txt", "D:''data.dat" };
int numberOfThreads = 10;
yourFiles.AsParallel().WithDegreeOfParallelism(numberOfThreads).ForAll(UploadFile);
private static void UploadFile(string file)
{
   // do the actual uploading
}

也许 Parallel.For 适合你。它易于使用。您知道线程何时完成,因为您可以在另一个线程中将一些变量添加到方法的末尾。类似于 ManualResetEvent。我认为Parallel.For是禁食实施的。您也可以使用线程池。通过微软网站阅读。

Parallel.For (.NET 4)


For(Int32, Int32, Action<Int32>)线程池 (.NET 2)
ThreadPool.QueueUserWorkItem(waitCallback)