मैं सी # और xaml का उपयोग कर एक विंडोज स्टोर ऐप बना रहा हूं। मुझे समय के कुछ अंतराल के बाद डेटा को रीफ्रेश करने की आवश्यकता है (सर्वर से नया डेटा लाएं)।फ़ंक्शन के कार्यकाल को पूरा करने के बाद समय-समय पर फ़ंक्शन निष्पादित करना
TimeSpan period = TimeSpan.FromMinutes(15);
ThreadPoolTimer PeriodicTimer = ThreadPoolTimer.CreatePeriodicTimer(async(source)=> {
n++;
Debug.WriteLine("hello" + n);
await dp.RefreshAsync(); //Function to refresh the data
await Dispatcher.RunAsync(CoreDispatcherPriority.High,
() =>
{
bv.Text = "timer thread" + n;
});
}, period);
यह ठीक से काम कर रहा है: मैं समय-समय पर मेरी ताज़ा समारोह निष्पादित करने के लिए इस प्रकार ThreadPoolTimer इस्तेमाल किया। एकमात्र समस्या यह है कि अगर रीफ्रेश फ़ंक्शन थ्रेड पूल में सबमिट होने से पहले पूरा नहीं होता है। क्या इसके निष्पादन के बीच अंतर निर्दिष्ट करने का कोई तरीका है।
चरण 1: ताज़ा फ़ंक्शन निष्पादित
चरण 2 (समय की किसी भी राशि लेता है): ताज़ा समारोह पूरा करता है इसके निष्पादन
चरण 3: 15 मि के लिए गैप तो चरण 1
ताज़ा समारोह जाना निष्पादित करता है। इसके निष्पादन समाप्त होने के बाद 15 मिनट, यह फिर से निष्पादित करता है।