Given the following method:

```
public async Task<MyObject> DoSomethingAsync() {
    // do some work
    await OpenSomeFileAsync();
    return new MyObject();
}

```

Is there a difference between:

```
public async void SomeEventHandler(EventArgs args) {
    var myObject = await await Task.Factory.StartNew<Task<MyObject>>( DoSomethingAsync);
    // do something with myObject
}

```

and:

```
public async void SomeEventHandler(EventArgs args) {
    var myObject = await DoSomethingAsync();
    // do something with myObject
}

```

I was thinking that the "do some work" part of DoSomethingAsync would happen immediately in a new task in the first case, but to be honest I don't really understand fully how Tasks, async and await are working, and I'm pretty sure I'm just overcomplicating things for myself.

EDIT:

This question came about from looking at this Metro example:
<http://code.msdn.microsoft.com/windowsapps/Sharing-Content-Target-App-e2689782>

Specifically in MainPage.xaml.cs, they have this:

```
var unused = Task.Factory.StartNew(async () => { // some work... });
// unused is of type Task<TResult>

```

I was trying to rework it without using an anonymous async function and I started wondering, why not just write an async method and await it, instead of calling StartNew and handing in an async function?