change beginInvoke return void