gpt4 book ai didi

c# - 关于C#中线程的问题

转载 作者:行者123 更新时间:2023-12-04 22:41:08 25 4
gpt4 key购买 nike

我现在有一个 Windows 窗体应用程序,我想创建一个新线程并在另一个接受输入的类上运行一个方法。

例如

public partial class Form1: Form {
SerialPort serialInput;
// I want to create a new thread that will pass the parameter serialInput into the method
// SMSListener on another class and run the method contionously on the background.
}

class SMS
{
public void SMSListener(SerialPort serial1)
{
serial1.DataReceived += port_DataRecieved;
}

private void port_DataRecieved(object sender, SerialDataReceivedEventArgs e)
{
// Other codes
}
}

如何在 C# 中执行此操作?我在网上看到了很多例子,大多数都是在同一个类上运行该方法,不带参数,但没有一个符合我的要求。

最佳答案

也许是Background Worker可以帮助你吗?
有点难以理解你的目标是什么。

public class Runner
{
private readonly BackgroundWorker _worker = new BackgroundWorker();

public Runner()
{
_worker.DoWork += WorkerDoWork;
}

public void RunMe(int payload)
{
_worker.RunWorkerAsync(payload);
}

static void WorkerDoWork(object sender, DoWorkEventArgs e)
{
var worker = sender as BackgroundWorker;

while (true)
{
if (worker.CancellationPending)
{
e.Cancel = true;
break;
}

// Work
System.Threading.Thread.Sleep((int)e.Argument);
}
}
}

关于c# - 关于C#中线程的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6028202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com