TIMER ', כיצד עובד? ונעילות LOCK
אני משתמש ב TIMER על מנת לבצע פעולה מסויימת כל X שניות
לדוגמא
ולכן הפעולה timer_Elapsed תתבצע כל שניה
כמה שאלות על הנושא הזה שלא ברורות לי
1- הTIMER פועל ב THREAD נפרד? אם כן במידה והגיע הזמן של הפונקציה לפעול שוב אבל הקודמת לא הסתיימה יפתח עוד THREAD ויפעלו במקביל או שהקריאה הבאה תתעכב?
2- איך אפשר להגדיר שאכן יהיה קריאה כל שניה לפונקציה הנ"ל אבל אם היא לא הסתיימה לא יהיה קריאה שוב?
3- למה הפונקציה שפועלת כל X זמן מקבלת object sender, ElapsedEventArgs e
מה כבר יהיה שם?
לגבי LOCK
כאשר אני עושה LOCK על OBJECT כלשהו ועושה קטע
האם ה LOCK ינהל תור על ה OBJ הזה? יש מקום להרבה THREAD לחכות עליו לפי התור או רק ל 1?
אני משתמש ב TIMER על מנת לבצע פעולה מסויימת כל X שניות
לדוגמא
קוד:
Timer _timer = new System.Timers.Timer(1000);
_timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
}
ולכן הפעולה timer_Elapsed תתבצע כל שניה
כמה שאלות על הנושא הזה שלא ברורות לי
1- הTIMER פועל ב THREAD נפרד? אם כן במידה והגיע הזמן של הפונקציה לפעול שוב אבל הקודמת לא הסתיימה יפתח עוד THREAD ויפעלו במקביל או שהקריאה הבאה תתעכב?
2- איך אפשר להגדיר שאכן יהיה קריאה כל שניה לפונקציה הנ"ל אבל אם היא לא הסתיימה לא יהיה קריאה שוב?
3- למה הפונקציה שפועלת כל X זמן מקבלת object sender, ElapsedEventArgs e
מה כבר יהיה שם?
לגבי LOCK
כאשר אני עושה LOCK על OBJECT כלשהו ועושה קטע
קוד:
object obj=new object()
lock (obj)
{
}