代码之家  ›  专栏  ›  技术社区  ›  Kerwen

如何按顺序写入窗口事件日志

  •  1
  • Kerwen  · 技术社区  · 6 年前

    static void Main(string[] args)
    {
        for(int i=0; i< 10; i++)
        {
            WriteSystemEventLog(i.ToString());
        }
        Console.ReadKey();
    }
    
    public static void WriteSystemEventLog(string msg, EventLogEntryType type = EventLogEntryType.Error)
    {
        EventLog myLog = null;
        try
        {
            myLog = new EventLog();
            myLog.Source = "My application";
            myLog.WriteEntry(msg, type);
        }
        catch (Exception e)
        {
            Console.WriteLine("Error occured during write system event log, error message: " + e.Message);
        }
        if (myLog != null)
        {
            myLog.Dispose();
            myLog = null;
        }
    }
    

    打开事件日志,按日期排序,应为: 0 1 2 3 ...

    实际值: 2 3 1 9 0 ...

    加上一秒钟的睡眠可以解决这个问题,但还有其他办法吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   see sharper    6 年前

    遗憾的是,系统事件日志中的事件只能以1秒的分辨率排序,因为它们使用UNIX时间戳—自1970年初以来的整秒数。这似乎是一个系统限制,你不能做太多。