我收集電話傳感器數據,並將其塞進開始爲每個傳感器正是如此特定類的對象的列表:轉換的選擇對象的列表的一個數組,同時正在被修改的列表
public class accbuff
{
public double ax { get; set; }
public double ay { get; set; }
public double az { get; set; }
public long acct { get; set; }
}
我然後追加每個新的傳感器讀數事件(e.Values)和時間戳到列表正是如此:
accList.Add(new accbuff
{
ax = e.Values[0],
ay = e.Values[1],
az = e.Values[2],
acct = stopwatch.ElapsedMilliseconds
});
最後,在設定的時間段之後欲列表內容傳遞給一些科學計算方法我有,然後清除列表並重置計時器。
這是我需要幫助的地方。清除列表或重置計時器沒有問題,但我無法從列表中複製數據,因爲在枚舉副本到數組時,新的傳感器讀數會修改列表。
傳感器讀數發生在大約500hz。如果我嘗試如下所示,則由於修改而導致枚舉錯誤。
long[] at = accList.Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
我知道我可以將其鎖定,但我真的不希望有傳感器讀數的縫隙,而我的列表複製爲進一步使用陣列。任何進行的策略都會很有幫助。謝謝!
完美 - 非常感謝您的幫助。 –