gpt4 book ai didi

C#委托(delegate): Do i use this correctly?

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:07 24 4
gpt4 key购买 nike

这是我第一次在 C# 应用程序中使用委托(delegate)。有人可以检查我是否正确使用它。

int totalsales = 0;

adddata(){
........
BeginInvoke(new UpdateSalesDelegate(UpdateSales), numbersale);

}

private delegate void UpdateSalesDelegate(int args);

private void UpdateSales(int args){
totalsales = totalsales + args;
Label.Text = "Total Sales: " + totalsales.ToString();

}

或者我应该使用

    adddata(){ 
........
BeginInvoke(new UpdateSalesDelegate(UpdateSales), new int numbersale);

}
.................

哪种方式是正确的?

最佳答案

老实说,我只是用

BeginInvoke((MethodInvoker)delegate {
UpdateSales(numbersale);
});

那样:

  • 无需声明委托(delegate)类型
  • 静态类型检查
  • MethodInvoker 有特殊的检测/处理,所以速度稍快(不多)

还不清楚异步方法将做什么;添加两个数字是矫枉过正,冷杉的例子。您可能需要考虑线程安全和线程亲和性。

关于C#委托(delegate): Do i use this correctly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com