gpt4 book ai didi

c# - 多线程

转载 作者:太空狗 更新时间:2023-10-30 00:58:47 25 4
gpt4 key购买 nike

我在这里发布了很多关于多线程的帖子,伟大的 stackoverflow 社区在理解多线程方面帮助了我很多。

我在网上看到的所有例子都只处理一个线程。

我的应用程序是一家保险公司(家族公司……全部免费)的抓取工具。无论如何,用户可以选择他们想要运行的线程数。例如,假设用户希望应用程序一次抓取 5 个站点,然后在当天晚些时候他选择了 20 个线程,因为他的计算机没有做任何其他事情,所以它有空闲资源。

基本上,该应用程序会构建一个包含 1000 个要抓取的网站的列表。线程关闭并执行此操作并更新 UI 并构建列表。

完成后调用另一个线程开始抓取。根据用户设置使用的线程数,它将创建 x 线程数。

创建这些线程的最佳方法是什么?我应该在列表中创建 1000 个线程吗?并循环遍历它们?如果用户设置了5个线程运行,它会一次循环5个。

我了解线程,但真正让我困惑的是应用程序逻辑。

网上有什么想法或资源可以帮到我吗?

最佳答案

您可以考虑为此使用线程池:

using System;
using System.Threading;

public class Example
{
public static void Main()
{
ThreadPool.SetMaxThreads(100, 10);

// Queue the task.
ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc));

Console.WriteLine("Main thread does some work, then sleeps.");

Thread.Sleep(1000);

Console.WriteLine("Main thread exits.");
}

// This thread procedure performs the task.
static void ThreadProc(Object stateInfo)
{
Console.WriteLine("Hello from the thread pool.");
}
}

关于c# - 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222778/

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