public class PLC
{
public static Socket SocketServer;
public const int PLCAreaNum = 3090;//PLC的M区编号,用于测试是否断线。
private const int sendTimeout = 1000;//发送数据的超时时间。单位:ms
private const int recTimeout = 3000;//接收数据的超时时间。单位:ms
private const string ipAddress = "192.168.1.3"; //ip地址
private const int port = 4000; //端口号
public static Object LockObject = new Object();//该锁对象控制不能同时读写PLC,且PLC在读写时,不能关闭PLC
//链接PLC
public static void ConnPLC()
{
lock (PLC.LockObject) //因为在读写过程中,plc连接可能断开,此时再连plc就存在两个
//线程同时访问SocketServer,所以要加锁。
{
try
{
SocketServer = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
SocketServer.SendTime
C# Lock总结
最新推荐文章于 2024-03-25 17:11:57 发布
本文详细介绍了C#中的lock语句使用示例及其作用。通过实例展示了lock如何确保线程安全,防止多个线程同时访问特定资源,特别是在PLC连接管理中,避免了在读写过程中的并发问题,保证了数据的正确性和连接操作的有序进行。
摘要由CSDN通过智能技术生成