c# - 返回值后执行代码行

标签 c# .net web-services

我试图在 yield return 之后执行代码。我有调用另一个方法的 WebMethod,我想在将值返回给 WebMethod 后做一些工作(执行方法 setNextCampaign()) 这是我的代码:

[WebMethod]
public long NextCall(long UserID)
{
    CampaignManagerExtended cacheCampaignManager = fillCampaignManager(false);

    return cacheCampaignManager.NextCall(UserID).First();
}



public IEnumerable<long> NextCall(long UserID)
        {
            UserExtended ue = null;
            try
            {
                if (!CacheUsers.ContainsKey(UserID))
                    AddUser(UserID);

                ue = CacheUsers.First(p => p.Key == UserID).Value;
                if (ue.NextCampaign != null)
                {
                    QueueItemPersonal qp = ue.NextFromPersonalQueue();
                    if (qp != null)
                    {

                        yield return qp.CampaignPersonID;
                    }
                    else 
                    { 
                        QueueItemScheduled qs = ue.NextCampaign.NextFromScheduleQueue();
                        if (qs != null)
                        {

                            yield return qs.CampaignPersonID;
                        }
                        else 
                        { 
                            QueueItemGeneral qg = ue.NextCampaign.NextFromGeneralQueue();
                            if (qg != null)
                            {

                                yield return qg.CampaignPersonID;
                            }                  
                            else
                                 yield return 0;
                        }
                    }
                    ue.NextCampaign.fillGeneralQueue();
                    ue.setNextCampaign();
                }
                else
                    yield return 0;

            }
            //catch
            //{
            //    yield return 0;
            //}
            finally
            {

            }
        }

有什么想法吗?

最佳答案

代替这个

<some stuff>;
yield return <something>;
<some epilog stuff that should be executed after yield>

这样做:

try
{
  <some stuff>;
  yield return <something>;
}
finally
{
  <some epilog stuff that should be executed after yield>
}

关于c# - 返回值后执行代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18654661/

相关文章:

c# - 类型兼容性和 LINQ 之谜

c# - 从头开始创建面向方面的属性/方法

web-services - wince 6智能设备无法建立SSL/TLS安全通道错误

azure - 为什么 Azure ASP(应用服务计划)手动扩展太慢?

java - 轴 2 错误 : Invalid white space character (0x4) in text to output

c# - 在代码后面执行授权检查

c# - 搜索 List<List<string>> 的最佳方法是什么?

c# - ConfigurationSection ConfigurationManager.GetSection() 总是返回 null

C#:如何唤醒已关闭的系统?

c# - 异步等待和线程