В чем разница между Invoke () и BeginInvoke ()

Просто интересно, какая разница между BeginInvoke()и Invoke()есть? Главным образом, для чего будет использоваться каждый. РЕДАКТИРОВАТЬ: В чем разница между созданием потокового объекта и вызова invoke на этом и просто вызов BeginInvoke()делегата? или это одно и то...