mariapradeep
mariapradeep

Reputation: 49

Issue with async and await in C#

Calling Method:

internal object ExecuteJob(RequestParam inputParam)
{
    bool jobStatus = false;
    var result = jobManager.ExecuteJob(inputParam);
    // Code continues

}

Invoking Method:

public async Task<int> ExecuteJob(RequestParam param)
{
    await Task.Run(() =>
    {
        result = package.Execute();
        jobResult = (int)result;
    });

    return jobResult;
}

Once package got completed, it should return back to the calling method, How can we achieve this? Because inside await, I couldn't able to use return like below,

await Task.Run(() =>
{
    result = package.Execute();
    jobResult = (int)result;
    if(result ==  ssisruntime.DTSExecResult.Success)
        return jobResult;
});

Please someone help.

Upvotes: 2

Views: 180

Answers (1)

Romano Zumb&#233;
Romano Zumb&#233;

Reputation: 8099

Perhaps something like this:

internal async Task<object> ExecuteJobAsync(RequestParam inputParam)
{
    bool jobStatus = false;

    var result = await jobManager.ExecuteJob(inputParam);
    // Code continues
}

public Task<int> ExecuteJob(RequestParam param)
{
     return Task.Run<int>(() =>
     {
         return (int)package.Execute();
     });
}

Upvotes: 3

Related Questions