0

我不知道它是否可能,但我想这样做:我想返回一个响应,但在执行函数之前,无需等待方法响应......

int Validate(saveobj obje)
{    
    // here I do my validations 
    return 0;
}

public string sendingObj(saveobj obje)
{
    //here I call my validation function 
    int result = Validate(obje);

    if(result != 0)
    // here I want to return ALLAYS something, because my web site cant wait all the process
    return result;
}

// here, no matter which response I give on my validate method I want to do this 

// Rest OF MY SENDING CODE !
4

3 回答 3

2

从方法返回是该函数中发生的最后一件事。return语句之后的所有代码都无法访问。

但是您可以通过在返回之前进行异步方法调用来实现您想要的。异步方法调用立即返回到您的调用函数并在另一个线程上执行它的工作。

在 .net 中进行异步调用有多种方法,例如使用 aBackgroundWorker或使用TaskFactory,取决于您使用的 .net 版本。

于 2013-06-07T09:22:17.220 回答
1

你可以试试这个

int Validate(saveobj obje)
{    
    // here I do my validations 
    return 0;
}

public string sendingObj(saveobj obje)
{
       int result=0;
       Task.Run(()=>
       {
           result = Validate(obje);
           if(result != 0)
       });

    return result;
}
于 2016-06-17T11:42:18.283 回答
0

我喜欢这个..

void sender(object sender, DoWorkEventArgs e)
        {
            // DO SOMETHING ! 


        }

        [HttpPost]
        public string Validate()
        {


            var backgroundWorker = new BackgroundWorker();
            backgroundWorker.DoWork += Foo;
            backgroundWorker.RunWorkerAsync();

            return "OK";





        }
于 2013-06-07T09:47:56.727 回答