C多线程写入日志

C多线程写入日志这里写自定义目录标题欢迎使用 Markdown 编辑器新的改变功能快捷键合理的创建标题 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右 SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的 KaTeX 数学公式新的甘特图功能 丰富你的文章 UML 图表 FLowchart 流程图导出与导入导出导入 public

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp5 { 
    class Program { 
    public delegate void AsyncLog(string str1, string str2); public static object lockObject = new object(); static void Main(string[] args) { 
    Test(); Console.ReadLine(); } public static void Test() { 
    Console.WriteLine("Test Start..."); for (int i = 0; i < 10; i++) { 
    AsyncLog asyLog1 = new AsyncLog(WriteLog); asyLog1.BeginInvoke("EventActionA" + i.ToString(), "EventContentA" + i.ToString(), null, null); AsyncLog asyLog2 = new AsyncLog(WriteLog); asyLog2.BeginInvoke("EventActionB" + i.ToString(), "EventContentB" + i.ToString(), null, null); AsyncLog asyLog3 = new AsyncLog(WriteLog); asyLog3.BeginInvoke("EventActionC" + i.ToString(), "EventContentC" + i.ToString(), null, null); } Console.WriteLine("Test End..."); } private static void WriteLog(string strEventType, string strEventContent) { 
    lock (lockObject) { 
    Console.WriteLine("Write Log start... ThreadID:{0}", Thread.CurrentThread.ManagedThreadId); //string strLogPath = string.Format("D:\\Log\\Log{0}.log", DateTime.Now.ToString("yyyy-MM-dd")); //if (!File.Exists(strLogPath)) //{ 
    // File.Create(strLogPath).Close(); //} //FileStream fs = new FileStream(strLogPath, FileMode.Append, FileAccess.Write); //StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); //sw.WriteLine(string.Format("{0} {1}", strEventType, strEventContent)); //sw.Close(); //fs.Close(); Console.WriteLine("Write Log End ThreadID:{0},type:{1}", Thread.CurrentThread.ManagedThreadId, strEventType); } } } } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227009.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:09
下一篇 2026年3月16日 下午10:09


相关推荐

  • Opencv中width和widthStep的区别

    Opencv中width和widthStep的区别在Opencv的结构Iplimage中,widthStep并不一定等于width*nChannel*(数据类型所占字节),这是因为Opencv中对内存有管理的机制,这一机制会对内存进行对齐,也就是当每一行所占的字节数不等于4的倍数时会自动补齐。例如:width=117,depth=8U,nChannel=1,则widthStep=120,因为117不是4的倍数,所以补齐到120。如果dep

    2022年6月7日
    45
  • Python运算符优先级一览表

    Python运算符优先级一览表所有的数学运算都是从左向右进行的 Python 语言中的大部分运算符也是从左向右结合的 只有单目运算符 赋值运算符和三目运算符例外 它们是从右向左结合的 也就是说 它们是从右向左运算的 乘法和加法是两个可结合的运算符 也就是说 这两个运算符左右两边的操作数可以互换位置而不会影响结果 运算符有不同的优先级 所谓优先级就是在表达式运算中的运算顺序 表 1 中列出了包括分隔符在内的所有运算

    2026年3月17日
    2
  • dfsdg_DFH5310CCYD

    dfsdg_DFH5310CCYDsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsd33333333dsddsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsd33333333dsddsdfsdfsdsdfsdfsdsdfsdfsdsdfsdfsdsdfsd33333333dsddsdfsd

    2022年10月4日
    3
  • 如何搭建自己的IOS分发平台

    如何搭建自己的IOS分发平台1 将签名后的 ipa 文件部署到服务器 1 首先这个网站要支持 HTTPS 协议 用来访问下载 plist 文件 我们可以自己申请证书来配置 2 除了 ipa plist 这两个文件 我们还需要提供两个图片 就是配置 plist 信息的时候填写的 一个尺寸是 57X57 像素 用来显示下载和安装过程中的图标 一个尺寸是 512X512 像素 用来在 iTunes 中显示 3 同时

    2026年3月16日
    2
  • 思科交换机路由器配置命令大全

    思科交换机路由器配置命令大全交换机基本状态 switch ROM 状态 路由器是 rommonhostna 用户模式 hostname 特权模式 hostname config 全局配置模式 hostname config if 接口状态交换机设置命令口令设置 switchenable 进入特权模式 switch configtermin 进入全局配置模式 switch config hostname 设置交换机的主机名 switch config enablesecret 设置特权加密口令 swi

    2026年3月17日
    1
  • tomcat的安装与配置[通俗易懂]

    tomcat的安装与配置[通俗易懂]tomcat的安装与配置

    2022年4月25日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号