В чем разница между следующим?
public delegate void SetSthDelegate(int[] x);
// 1)
SetSthDelegate sst = new SetSthDelegate(SetSthMethod);
sst(x);
// 2)
Invoke(new SetSthDelegate(SetSthMethod), new object[] {x}
// 3)
BeginInvoke(new SetSthDelegate(SetSthMethod), new object[] {x}
Я узнал, что 2) для синхронного вызова методов, а 3) для асинхронного вызова методов, но когда вы хотите вызывать методы синхронно и асинхронно?
Может ли кто-нибудь показать мне, когда иллюстрация и объяснение, когда использовать 1), 2), 3) более уместна?
Может также объяснить, почему люди предпочитают Invoke, а не InInkeke и наоборот?