क्या थ्रेड को निष्पादित करना जारी रखते हुए फ़ंक्शन कॉल में देरी करने का एक अच्छा सरल तरीका है?
जैसे
public void foo()
{
// Do stuff!
// Delayed call to bar() after x number of ms
// Do more Stuff
}
public void bar()
{
// Only execute once foo has finished
}
मुझे पता है कि यह एक टाइमर और इवेंट हैंडलर का उपयोग करके प्राप्त किया जा सकता है, लेकिन मैं सोच रहा था कि क्या इसे प्राप्त करने के लिए एक मानक सी # तरीका है?
यदि कोई भी जिज्ञासु है, तो इसका कारण यह है कि फू () और बार () विभिन्न (सिंगलटन) कक्षाओं में होते हैं, जिन्हें असाधारण परिस्थितियों में एक दूसरे को कॉल करने की आवश्यकता होती है। समस्या यह है कि यह आरंभीकरण पर किया जाता है इसलिए फू को बार को कॉल करने की आवश्यकता होती है जिसे फू क्लास के एक उदाहरण की आवश्यकता होती है जो बनाया जा रहा है ... इसलिए बार को विलंबित कॉल () यह सुनिश्चित करने के लिए कि फू पूरी तरह से अस्थिर है .. इसे वापस पढ़ना खराब डिजाइन के लगभग स्मैक!
संपादित करें
मैं सलाह के तहत खराब डिजाइन के बारे में अंक लूंगा! मैंने लंबे समय से सोचा है कि मैं सिस्टम को बेहतर बनाने में सक्षम हो सकता हूं, हालांकि, यह बुरा स्थिति केवल तब होती है जब एक अपवाद फेंक दिया जाता है, अन्य सभी समय पर दो एकल एकल बहुत अच्छी तरह से मौजूद होते हैं। मुझे लगता है कि मैं गंदा async-patters के साथ खिलवाड़ नहीं करने जा रहा हूं, बल्कि मैं कक्षाओं में से एक के प्रारंभिककरण को रिफलेक्टर करने जा रहा हूं।