首先,我很初學編程,你可能會看到,但這裏是我的問題: 我想記錄一個Kinects加速度計數據,並將其寫入文件每5分鐘作爲備份。但是我無法在Timers OnTimeEvent中獲得StringBuilder數據,它包含了我從加速度計獲得的數據。所以問題是,StringBuilder數據是否可以通過ElapsedEventArghs傳遞,或者是否有其他選項可以訪問StringBuilders數據? 我在這裏複製我的代碼: 命名空間KinectSokadikTeszt {Kinect加速度計數據定時器備份
public class CounterClass
{
private int counter;
public int Counter
{
get { return counter; }
set { counter = value; }
}
private StringBuilder stringTemp;
public StringBuilder StringTemp
{
get { return stringTemp; }
set { stringTemp = value; }
}
public int GetCounter()
{
return counter;
}
}
public class Program
{
public static void Main(string[] args)
{
CounterClass sz = new CounterClass();
KinectSensor sensor = KinectSensor.KinectSensors[0];
Vector4 gravity;
FileStream fs = new FileStream(@"c:\teszt.txt", FileMode.Create);
fs.Close();
StreamWriter sw = new StreamWriter(@"c:\teszt.txt");
sz.StringTemp = new StringBuilder();
sz.Counter = 0;
Timer timer = new Timer();
timer.Start();
timer.Elapsed += new ElapsedEventHandler(OnTimeEvent);
timer.Interval = 300000;
timer.Enabled = true;
while (sz.Counter < 7500)
{
gravity = sensor.AccelerometerGetCurrentReading();
DateTime dt = DateTime.Now;
Console.WriteLine("X: {0}\tY: {1}\tZ: {2}\t{3}.{4}", gravity.X, gravity.Y, gravity.Z, dt, dt.Millisecond);
sz.StringTemp.AppendLine("X:" + gravity.X.ToString() + "\tY:" + gravity.Y.ToString() + "\tZ:" + gravity.Z.ToString() + "\t" + dt + "." + dt.Millisecond);
sz.Counter++;
}
}
private static void OnTimeEvent(object sender, ElapsedEventArgs e)
{
sw.Write(sz.StringTemp);
sw.Close();
}
}
}
@DánielNagy不客氣。但請閱讀規則,因爲在本網站禁止寫「我喜歡它」「非常感謝喲」等等......祝你有個美好的一天, – Tinwor