不调用的话,你就不知道操作是否完成了,执行的过程是否抛出了异常。
连续调用不影响,但是要注意线程同步。你多执行几次下以下代码就知道了:
var shared = 0; Action<int> action = p => { Console.WriteLine("p = {0}, shared = {1}", p, shared); var random = new Random(); Thread.Sleep(random.Next(1000)); shared = p; }; action.BeginInvoke(1,null,null); action.BeginInvoke(2,null,null); action.BeginInvoke(3,null,null); action.BeginInvoke(4,null,null); action.BeginInvoke(5,null,null); action.BeginInvoke(6,null,null); action.BeginInvoke(7,null,null); action.BeginInvoke(8,null,null); action.BeginInvoke(9,null,null); action.BeginInvoke(10,null,null);
不怎么样,你可以不调用
如果 我在下一步 还要调用这个呢?
this.BeginInvoke(STByzy, new object[] { tb_yzy, yzy });
。。。
this.BeginInvoke(STByzy, new object[] { tb_yzy, yzy });
Delegate.BeginInvoke必须对应EndInvoke,据说不调可能会有memory leak(未证实)。
Control.BeginInvoke可以不EndInvoke。
你这个this应该是Control,EndInvoke可以不调用。 连续调用多次我印象中没什么影响,这些调用会排队执行(实际上所有Control.BeginInvoke都会在主UI线程上排队执行,IIRC)
可以不调