C#和VB.NET之间的线程转换

时间:2014-06-15 22:36:15

标签: c# vb.net migration

我想将以下C#代码转换为VB.NET

public byte[] TextToBytes(string textToSpeak)
{
    byte[] byteArr = null;

    var t = new System.Threading.Thread(() =>
    {
        SpeechSynthesizer ss = new SpeechSynthesizer();
        using (MemoryStream memoryStream = new MemoryStream())
        {
            ss.SetOutputToWaveStream(memoryStream);
            ss.Speak(textToSpeak);
            byteArr = memoryStream.ToArray();
        }
    });
    t.Start();
    t.Join();
    return byteArr;
}

我尝试了各种各样的东西并使用了在线转换器,但即使是在线转换器也不确定如何处理Thread事物。

有人可以伸出援助之手吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

C#中的() =>表示lambda表达式。 VB中用Function()Sub()表示相同,具体取决于是否返回值。

Dim t = New System.Threading.Thread(Sub()
    Dim ss As New SpeechSynthesizer()

    Using memoryStream As New MemoryStream()
        ss.SetOutputToWaveStream(memoryStream)
        ss.Speak(textToSpeak)
        byteArr = memoryStream.ToArray()
    End Using
End Sub)