我在 c# 上编写了一个小应用程序,以使用以太网协议读取一些 plc 数据。以太网套接字、打开和关闭存储在 .dll 库中。现在,我使用这个公共方法:
public static string readdata()
{
try
{
...
return (plcdata());
}
catch
{}
}
我的疑问:如果 plcdata() (这是一个 .dll 的方法)等待几秒钟(例如慢速通信......)我的应用程序可能会被冻结。
所以,我尝试在返回的字符串上添加一个 EventHandler,如下所示:
private static TextBox auxDataTextBox = new TextBox();
public static void goRead()
{
auxDataTextBox.TextChanged += new EventHandler(auxDataIncoming);
auxDataTextBox.Text = plcdata();
}
private static void auxDataIncoming(object sender, EventArgs e)
{
// Do something
}
在这种情况下,当“plcdata()”改变时,auxDataIncoming 将被提升。它是正确的?还是更好地进行超时控制?还是新建线程?
非常感谢您的意见