如代码所示,我有几个疑问
1、调用1与2(3与4)完全相同吗?执行委托和事件的时候会自动使用func.Invoke?
2、如下代码在WinForm窗体程序里,如果出现了跨线程访问控件,是不是都不能直接执行?
我试了一些(使用Task.Run跨线程访问)好像是都不行的?
3、BeginInvoke目前只能在Form程序中使用了吗?
public static event Func<string, int> event_func;
public static void Main(string[] args) {
Func<string, int> func = Test;//使用委托
int a = func.Invoke("5");//调用1
int b = func("5");//调用2
event_func += Test;//使用事件
int c = event_func("5");//调用3
int d = event_func.Invoke("5");//调用4
Console.ReadLine();
}
public static int Test(string a) => Convert.ToInt32(a);