在项目中 将秒杀的时候锁定线程并将线程操作的ID写入txt文件中 (例子)

锁定线程,进行单线程操作的时候,应使用以下操作方法锁定:
private readonly static Object thisLock = new Object();
 lock (thisLock)
{
...
}

 

//
private void writeLog(Exception e)
        {
            FileStream fs = new FileStream("d:/ceshixiancheng.txt", FileMode.Append);
            
            //获得字节数组
            byte[] data = new UTF8Encoding().GetBytes(e.Message);
            //开始写入
            fs.Seek(0, SeekOrigin.End);
            fs.Write(data, 0, data.Length);
            var str = "\r\n";
            byte[] data1 = new UTF8Encoding().GetBytes(str);
            fs.Write(data1, 0, data1.Length);
            //清空缓冲区、关闭流
            fs.Flush();
            fs.Close();
        }

//使用时的调用:
  writeLog(new Exception("线程:" + Thread.CurrentThread.ManagedThreadId + "进来了!"));
View Code

以上为在做秒杀时 锁定线程,防止库存溢出的一个测试,测试是不是将线程锁定了,正常情况,线程锁定后,输出到txt文档的内容都是成对的,一进一出。如果不是则说明县城没有锁死.另外注意需要将txt文档的权限给了,否则会提示没有权限。

你可能感兴趣的:(在项目中 将秒杀的时候锁定线程并将线程操作的ID写入txt文件中 (例子))