Click here to Skip to main content
15,888,351 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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.

C#
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();
}


VB
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
Posted
Comments
bobishkindaguy 13-May-13 16:40pm    
Thanks Jegan, I will give your suggestion a try.

1 solution

Hi,
have you tried this;
VB
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
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900