Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Task.Run with Input Parameters and Output

This works great:

private void MainMethod()
{
    Task<bool> taskItemFound = new Task<bool>(ItemFound);
}

private bool ItemFound()
{
    //Do Work
    return true;
}

This works but is UGLY and I can't pass more than one parameter:

private void MainMethod()
{
    var startNew = Task<bool>.Factory.StartNew(TempMethod, "cow");
}

private bool TempMethod(object o)
{
    return ("holy " + o == "holy cow");
}

I'm looking for a solution that will give me a Task<bool> from an existing method with more than one input parameter and that returns a bool. Ideally, it would look like this:

Task<bool> taskItemFound = new Task<bool>(ItemFound(param1, param2, param3));
like image 882
LorneCash Avatar asked Sep 17 '25 07:09

LorneCash


1 Answers

You can do:

bool result = await Task.Run(() => ItemFound(param1, param2, param3) );

Or if you really want it as Task<bool>:

Task<bool> t = new Task<bool>(() => ItemFound(param1, param2, param3) );
like image 164
GregorMohorko Avatar answered Sep 19 '25 19:09

GregorMohorko