I'm using the asyncbridge for 3.5, and have run into a problem. When I have a method returning a void, I know I have to return a Task.
However, the method below doesn't work
public async Task PingAsync()
{
return await Task.Factory.FromAsync(client.BeginPing, client.EndPing, new object());
}
Works like a charm when I return values, I.E. return await Task.FromFactory....
Am I missing something here?

I suspect you can just change it to:
public Task PingAsync()
{
return Task.Factory.FromAsync(client.BeginPing, client.EndPing, new object());
}
There's no benefit in making this an async method - you're just trying to create a task representing the async operation, and TaskFactory.FromAsync does that for you.
If you really want to use async and await, just remove the return part:
public async Task PingAsync()
{
await Task.Factory.FromAsync(client.BeginPing, client.EndPing, new object());
}
Looking at the overloads for FromAsync I suspect you might want client.BeginPing() instead of client.BeginPing... and it's not clear why you're creating a new object as the state instead of just using null. Presumably you're not using that state...
See more on this question at Stackoverflow