मेरे पास एक टाइमर है जिसे एक ही समय में अपने विलुप्त होने वाले ईवेंट हैंडलर को संसाधित करने की आवश्यकता नहीं है। लेकिन एक विलुप्त घटना प्रसंस्करण दूसरों के साथ हस्तक्षेप कर सकता है। मैंने नीचे दिए गए समाधान को लागू किया, लेकिन कुछ गलत लगता है; ऐसा लगता है कि मुझे टाइमर का अलग-अलग उपयोग करना चाहिए या थ्रेडिंग स्पेस के भीतर किसी अन्य ऑब्जेक्ट का उपयोग करना चाहिए। टाइमर सबसे अच्छा लग रहा था क्योंकि मुझे समय-समय पर स्थिति की जांच करने की आवश्यकता होती है, लेकिन कभी-कभी जांच मेरे अंतराल से अधिक समय लेती है। क्या यह इस तक पहुंचने का सबसे अच्छा तरीका है?विलुप्त घटना को संसाधित करते समय टाइमर को कैसे अवरुद्ध करें?
// member variable
private static readonly object timerLock = new object();
private bool found = false;
// elsewhere
timer.Interval = TimeSpan.FromSeconds(5).TotalMilliseconds;
timer.Elapsed = Timer_OnElapsed;
timer.Start();
public void Timer_OnElapsed(object sender, ElapsedEventArgs e)
{
lock(timerLock)
{
if (!found)
{
found = LookForItWhichMightTakeALongTime();
}
}
}
यह एक समुदाय विकी नहीं होना चाहिए था। – Samuel
@ सैमुएल - यदि कोई पोस्टर चाहता है तो कोई प्रश्न समुदाय विकी हो सकता है। एफएक्यू केवल निर्दिष्ट करता है कि कुछ प्रश्न शुरुआत से सामुदायिक विकी होना चाहिए, लेकिन सीडब्लू को किसी भी प्रश्न पर लागू नहीं करना चाहिए। – tvanfosson
@tvanfosson: मैं उसे बता रहा था कि इस तरह के प्रश्न समुदाय विकी नहीं होना चाहिए। – Samuel