小编min*_*ler的帖子

C# yield return enumerator,从中途继续

我正在使用 yield return 来处理一些数据,其中包含一组不确定的迭代。我想开始处理,但是一旦满足条件(例如字节大小)就从循环中断,将枚举数传递给将继续处理的新线程,然后返回到目前为止处理的结果。

实际上,我有一个 foreach 循环,我可能会在结束之前突破它。如何将 IEnumerable 传递给一个新线程并从我离开的地方而不是从头开始“继续”?

public static IEnumerable<String> Process()
{
    // static values added for simplicity, but will be a variable number of returns
    yield return "1";
    yield return "2";
    yield return "3";
    yield return "4";
    yield return "5";
    yield return "6";    
}

List<String> main()
{
    List<String> retVal = new List<String>();
    IEnumerable<String> strList = Process();

    foreach(String strItem in strList)
    {
        retVal.Add(strItem);
        Console.WriteLine(strItem);
        // Time to send something back and continue in a new thread
        if (strItem.Equals("3")) …
Run Code Online (Sandbox Code Playgroud)

c# iterator yield enumerable enumerator

0
推荐指数
1
解决办法
1067
查看次数

标签 统计

c# ×1

enumerable ×1

enumerator ×1

iterator ×1

yield ×1