试图将此子转换为VB [英] Trying to convert this sub to VB

查看:105
本文介绍了试图将此子转换为VB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将Linq lambda从C#转换为VB时出现问题。



错误是:

错误5重载解析失败,因为没有access''New''对于这些论点最具体:

''Public Sub New(start As System.Threading.ParameterizedThreadStart)'':不是最具体的。

''Public Sub New(start As System.Threading.ThreadStart)'':不是最具体的。





这里是C#代码,我对VB的尝试如下。



Having a problem converting a Linq lambda from C# to VB.

The error is:
Error 5 Overload resolution failed because no accessible ''New'' is most specific for these arguments:
''Public Sub New(start As System.Threading.ParameterizedThreadStart)'': Not most specific.
''Public Sub New(start As System.Threading.ThreadStart)'': Not most specific.


Here''s the C# code, and my attempt at VB follows.

private void FetchEnvelopesAsync(Mailbox mailbox)
{
new Thread(() =>
  {
  try {
    using (var client = CreateClientByAccount _ 
    (mailbox.AccountState.Account)) {
      client.Select(mailbox.Fullname);

      var query = client.Messages.Where(x => x.Date < DateTime.Today.AddDays(1)).Select _
      (x => new MyMessage {Envelope = x.Envelope, Uid = x.Uid});

      foreach (var message in query) {
        message.Mailbox = mailbox;
        AddMessageToViewSafely(mailbox, message);
      }
    }
  }
  catch (Exception ex) {
    LogSafely(ex.Message);
  }
}).Start();
}







Private Sub FetchEnvelopesAsync(mailbox As cMailbox)
  Dim T As New Thread(Function()
      Try
        Using client = CreateClientByAccount(mailbox.AccountState.Account)
        client.[Select](mailbox.Fullname)
        Dim query = client.Messages.Where( _
        Function(x) x.[Date] < DateTime.Today.AddDays(1)).[Select] _
          (Function(x) New cMyMessage() _
        With {.Envelope = x.Envelope, .Uid = x.Uid})
 
          For Each message As Object In query
            message.Mailbox = mailbox
            AddMessageToViewSafely(mailbox, message)
          Next
        End Using
      Catch ex As Exception
        LogSafely(ex.Message)
      End Try

    End Function)
    T.Start()

  End Sub

推荐答案



你有没有试过这个;

Hi,
have you tried this;
Private Sub FetchEnvelopesAsync(mailbox As cMailbox)

  Dim T As New Thread( New ThreadStart(
      Function()
          Try
            Using client = CreateClientByAccount(mailbox.AccountState.Account)
            client.[Select](mailbox.Fullname)
            Dim query = client.Messages.Where( _
            Function(x) x.[Date] < DateTime.Today.AddDays(1)).[Select] _
              (Function(x) New cMyMessage() _
            With {.Envelope = x.Envelope, .Uid = x.Uid})
     
              For Each message As Object In query
                message.Mailbox = mailbox
                AddMessageToViewSafely(mailbox, message)
              Next
            End Using
          Catch ex As Exception
            LogSafely(ex.Message)
          End Try
 
    End Function))
 
  End Sub





Jegan



Jegan


这篇关于试图将此子转换为VB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆