Saya memiliki metode yang mengembalikan nilai bool, tetapi harus menunggu dengan mengembalikan nilai hingga System.Timers.Timer memunculkan peristiwa yang telah berlalu, karena nilai yang ingin saya kembalikan diatur dalam peristiwa penghitung waktu yang telah berlalu.
public static bool RecognizePushGesture()
{
List<Point3D> shoulderPoints = new List<Point3D>();
List<Point3D> handPoints = new List<Point3D>();
shoulderPoints.Add(Mouse.shoulderPoint);
handPoints.Add(Mouse.GetSmoothPoint());
Timer dt = new Timer(1000);
bool click = false;
dt.Elapsed += (o, s) =>
{
shoulderPoints.Add(Mouse.shoulderPoint);
handPoints.Add(Mouse.GetSmoothPoint());
double i = shoulderPoints[0].Z - handPoints[0].Z;
double j = shoulderPoints[1].Z - handPoints[1].Z;
double k = j - i;
if (k >= 0.04)
{
click = true;
dt.Stop();
}
};
dt.Start();
//should wait with returning the value until timer raises elapsed event
return click;
}
Terima kasih, Tim
RecognizePushGesture
mengambil delegasi sebagai parameter, yang akan berfungsi sebagai panggilan balik kapan punk >= 0.04
. - person ebb   schedule 23.10.2012