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
