【问题标题】:VB9 New thread with multiple parameters带有多个参数的VB9新线程
【发布时间】:2009-05-19 19:04:45
【问题描述】:

我正在尝试创建一个新线程并发送多个参数以及一个委托来报告。

在 VB8 中我总是讨厌这样做,因为它需要引入新的类/结构或委托。

在 VB9 中有没有更好的方法来做到这一点?

我正在寻找类似这样的解决方案:

   Dim Th As New Thread(AddressOf DoStuff)
   Th.Start(param1, param2, AddressOf ReportStatus)

我不擅长 LINQ 和 Lambda,所以我希望有人会告诉我一些很酷的技巧来做到这一点。

【问题讨论】:

    标签: .net vb.net multithreading lambda


    【解决方案1】:

    可以将匿名函数传递给线程构造函数。

    Dim Th = New Thread(Sub() DoStuff(param1, param2, AddressOf ReportStatus))
    

    但不幸的是,VB9 中没有匿名订阅者(它们将在 VB10 中 - 在 C# 中这应该已经可以工作了)。

    【讨论】:

    • 好的,我认为这在 VB9 中是可能的,对 MS 感到羞耻
    • 对 MS 感到羞耻?是像你这样的人给 MS 起了个坏名声。 Microsoft 在每个版本中都不断改进 VB 和 C# 语言。为你没有给予应得的荣誉而感到羞耻。
    【解决方案2】:

    不。 VB9 中没有什么新东西。

    【讨论】:

      【解决方案3】:

      也许您已经对此很熟悉了,但是根据您的应用程序,使用 ThreadPool 可能有用且容易。我不太了解使用 ThreadPool.QueueUserWorkItem 发送参数,但this 页面似乎提供了一个很好的涉及 lambda 表达式和匿名类型的教程。它在 C# 中,但我确信它会转换为 VB。

      【讨论】:

      • 实际上我正在尝试类似的东西,但该页面是 C# (我可以阅读 C# 并转换除了 Linq 和 Lambad :) )。另外我不确定其中有多少可以应用于 VB.NET
      猜你喜欢
      • 2017-05-25
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 2018-08-16
      • 2022-11-03
      相关资源
      最近更新 更多