0
存儲的DateTime這是我當前的代碼:如何通過的EventSource WriteEventCore
[NonEvent]
unsafe void InsertViaWriteEventCore(
int eventId,
DateTime startDateTime,
DateTime endDateTime)
{
const int eventDataCount = 2;
{
EventData* data = stackalloc EventData[eventDataCount];
data->DataPointer = (IntPtr)(&startDateTime);
data->Size = sizeof(DateTime);
data[1].DataPointer = (IntPtr)(&endDateTime);
data[1].Size = sizeof(DateTime);
WriteEventCore(eventId, eventDataCount, data);
}
}
但最後,在所生成的事件,我看「8/30/3617下午五點00分00秒」爲startDateTime如果我提供startDateTime爲「8/30/2017 5:00:00 PM」該方法。這一年總是增加1600。
我試着提供8 as the size而不是sizeof(DateTime),我仍然得到相同的結果。如果我將日期更改爲字符串並將其作爲字符串傳遞給writeeventcore,那麼我會得到正確的日期值,如示例here中所示。我在這裏做錯了什麼?什麼是通過WriteEventCore傳遞DateTime的正確方法?
舉起2個事件(1個開始和1個停止與正確的開始/停止操作碼)。所有的事件都有一個時間戳,你可以計算diff來獲得時間 – magicandre1981
@ magicandre1981我的問題是將datetime對象存儲到EventData數組中。你是如何創建數據對象的?您爲datetime對象提供的大小和Datapointer值是多少?你的代碼中的 – Alfan
我看到你[請問如何記錄事件的持續時間](https://stackoverflow.com/q/25066944/1466046)。但是,這是錯誤的方法失敗了,現在你試圖爲你的錯誤方法找到解決方法,而不是問真正的問題。這被稱爲[XY問題](https://meta.stackexchange.com/a/66378)。 – magicandre1981