简体   繁体   中英

WebAPI Threading

So I have a function that has a long wait time during its computation. I have a endpoint that needs to call this function, however it does not care about the completion of the function.

public HttpResponseMessage endPoint
{
    Repository repo= new Repository();
    // I want repo.computeLongFunction(); to be called, however this endpoint
    // can return a http status code "ok" even if the long function hasn't completed.

    repo.computeLongFunction();

    return Request.CreateReponse(HttpStatusCode.Ok);
}

// If I make the function async would that work?
public class Repository
{ 
    public void compluteLongFunction()
    { 

    }
}

Use the Task Parallel Library (TPL) to spin off a new thread.

Task.Run(() => new Repository().computeLongFunction());
return Request.CreateReponse(HttpStatusCode.Ok);

It doesn't look like computeLongFunction() returns anything, so try this:

Thread longThread = new Thread(() => new Repository().computeLongFunction());
longThread.Start();

return Request.CreateResponse(HttpStatusCode.Ok);

Declare the thread so that you will still be able to control its life-cycle.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM