Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 线程化(这些线程本身是退出还是中止?)_C#_.net_Multithreading_Delegates - Fatal编程技术网

C# 线程化(这些线程本身是退出还是中止?)

C# 线程化(这些线程本身是退出还是中止?),c#,.net,multithreading,delegates,C#,.net,Multithreading,Delegates,我只是想问一个关于以下计划的澄清: foreach (Match match in MC) { string link = match.Groups["link"].ToString(); if (link.Contains("ebay.de/itm/")) { int endIndex = link.IndexOf("?pt"); link = link.Substring(0, endIndex); if (lin

我只是想问一个关于以下计划的澄清:

foreach (Match match in MC)
{   
    string link = match.Groups["link"].ToString();
    if (link.Contains("ebay.de/itm/"))
    {
        int endIndex = link.IndexOf("?pt");
        link = link.Substring(0, endIndex);
        if (link != lastLink)
        {
            getEanPerLink = delegate
            {
                getEan(link);
            };
            new Thread(getEanPerLink).Start();
        }
        lastLink = link;
    }
}

当程序循环时,它会创建很多线程。我只是想问这些线程是结束还是自行退出。如果没有,我如何中止创建的每个线程

getEan
方法退出时,每个线程都将结束。如果是这样,那么您不必再做任何事情,线程和
线程
对象将完全消失


可以中止线程,但不推荐它,因为它在线程所做的任何事情中抛出异常。建议的方法是与希望结束的线程通信,这样它就可以在代码中方便的位置进行通信。

getEan
方法退出时,每个线程都将结束。如果是这样,那么您不必再做任何事情,线程和
线程
对象将完全消失


可以中止线程,但不推荐它,因为它在线程所做的任何事情中抛出异常。建议的方法是与您希望它结束的线程通信,以便它可以在代码中方便的位置进行通信。

将它们作为后台线程,这样当您关闭或中止正在运行的线程时,它们将被关闭

我的建议是不要在这里使用线程;这是一种使用线程的糟糕方式

如果您正在使用.net 4.5,请使用异步等待
如果您正在使用.net 4,请使用任务
如果您正在使用.net 3.5,请使用线程池
如果您正在使用.net 2 backgroundWorker

问候,

Bassam

将它们作为后台线程,当您关闭或中止正在运行的线程时,它们将被关闭

我的建议是不要在这里使用线程;这是一种使用线程的糟糕方式

如果您正在使用.net 4.5,请使用异步等待
如果您正在使用.net 4,请使用任务
如果您正在使用.net 3.5,请使用线程池
如果您正在使用.net 2 backgroundWorker

问候,

Bassam

请参见:任务完成后线程自行结束。请改用任务类。它们更干净,易于使用,开销更小。请参见:任务完成后线程自行结束。请改用task类。它们更干净,易于使用,开销更小