C#中的线程产生错误

l--*_*''' 4 c# multithreading

我正在使用此代码:

private void Form1_Load(object sender, EventArgs e)
{

}

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    string response = serialPort1.ReadLine();
    this.BeginInvoke(new MethodInvoker(
        () => textBox1.AppendText(response + "\r\n")
    ));
}

ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
Thread myThread = new Thread(myThreadDelegate);
myThread.Start();
Run Code Online (Sandbox Code Playgroud)

但是我遇到了很多错误:

错误2找不到类型或命名空间名称'ThreadStart'(您是否缺少using指令或程序集引用?)C:\ Users\alexluvsdanielle\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 31 44 WindowsFormsApplication1

错误3当前上下文中不存在名称"ThreadWork"C:\ Users\alexluvsdanielle\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 31 56 WindowsFormsApplication1

错误4找不到类型或命名空间名称'Thread'(您是否缺少using指令或程序集引用?)C:\ Users\alexluvsdanielle\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 32 31 WindowsFormsApplication1

错误5字段初始值设定项无法引用非静态字段,方法或属性'WindowsFormsApplication1.Form1.myThreadDelegate'C:\ Users\alexluvsdanielle\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 32 38 WindowsFormsApplication1

我究竟做错了什么?

Chr*_*isF 6

ThreadThreadStartSystem.Threading MSDN页面中.

添加using System.Threading;到代码顶部的命名空间.

ThreadWork不是.NET中定义的类.我在这里找到了一个MSDN页面,它在示例代码中使用了它.因此,您需要将其替换为您已定义DoWork方法的类的名称.如果它与此代码在同一个类中,那么您只需要通过DoWork.


Tim*_*oyd 6

也许我在这里提到了明显的流血,但是从代码示例中,你的代码块:

ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
Thread myThread = new Thread(myThreadDelegate);
myThread.Start();
Run Code Online (Sandbox Code Playgroud)

不是一种方法.我之前做过这个.

一旦你解决了这个问题,其他答案显然会适用.