मैं कुछ टाइल अपडेट शेड्यूल करने जा रहा हूं, और ध्यान दिया कि क्लेयर() विधि काम नहीं कर रही है। इसे 'सभी अद्यतनों को हटा देना चाहिए और ऐप के मैनिफेस्ट में घोषित की गई अपनी डिफ़ॉल्ट सामग्री को वापस लेना चाहिए' (MSDN)TileUpdater.Clear() सभी अपडेट क्यों नहीं हटाता है?
संपादित करें: चेकी एमएस! उस विधि के लिए प्रलेखन के तहत यह कहता है: 'नोट: यह विधि समय-समय पर अद्यतनों को रोक नहीं देती है'
कहें कि मैं 3000 अपडेट अपडेट करता हूं (नहीं कि मैं बीटीडब्ल्यू कर रहा हूं!), कॉलिंग को साफ़ करने के बाद अभी भी 3000 है।
वही सवाल यहाँ कहा गया था: TileUpdater.Clear() not freeing up notifications quota, और केवल सिफारिश प्रत्येक और अद्यतन में से एक मैन्युअल रूप से दूर करने के लिए किया गया था।
मैंने यह जांचने का फैसला किया कि स्टॉपवॉच क्लास का उपयोग करके कितना समय लगेगा, और इसमें 40 सेकंड में निर्धारित समय की अधिकतम राशि के साथ 11 सेकंड, 18 सेकेंड का समय लगेगा, ताकि समाधान थोड़ा पागल हो।
जब से मैं घंटे के आधार पर आगे के लिए कुछ दिनों की तुलना में अधिक अनुसूची अभ्यस्त और शायद नए लोगों को मैं हटाने लूप के साथ ठीक हो जाओगे जोड़ने के लिए एक रखरखाव ट्रिगर के साथ एक पृष्ठभूमि कार्य का उपयोग करें। लेकिन मुझे अभी भी उम्मीद है कि मैं यहां कुछ गलत कर रहा हूं और यह एक बेहतर समाधान है।
तो, क्या आप जानते हैं क्यों .Clear() काम नहीं करता है, और सबसे अच्छा विकल्प क्या होगा?
साफ़ केवल टाइल में परिवर्तन को साफ करता है,
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var updater = TileUpdateManager.CreateTileUpdaterForApplication();
updater.Clear();
var test = updater.GetScheduledTileNotifications();
var stopWatch = new Stopwatch();
stopWatch.Start();
foreach (var update in test)
{
updater.RemoveFromSchedule(update);
}
stopWatch.Stop();
var time = stopWatch.Elapsed;
notify.Text = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
time.Hours, time.Minutes, time.Seconds,
time.Milliseconds/10);
for (int i = 0; i < 4096; i++)
{
var wide = TileContentFactory.CreateTileWideText09();
var square = TileContentFactory.CreateTileSquareText04();
wide.TextHeading.Text = "The heading";
wide.TextBodyWrap.Text = "The body text for notification: " + i;
square.TextBodyWrap.Text = "The body text for notification: " + i;
wide.SquareContent = square;
var tileNotification = new ScheduledTileNotification(wide.GetXml(), DateTime.Now.AddMinutes(i + 1));
updater.AddToSchedule(tileNotification);
}
}
मुझे StopPeriodicUpdates के बारे में पता है, लेकिन मुझे 'नोट यह विधि आवधिक अद्यतनों को रोक नहीं देती है' से चूक गई। वास्तव में खराब नामकरण, साफ़() SetToDefaultTile() होना चाहिए। कैसा कष्टकर। तो लूप यह तब है :(आह ठीक है, यहाँ और ट्विटर साथी पर मदद के लिए धन्यवाद :) –
कोई चिंता नहीं .. WinRT के साथ हम बुरे नामकरण के COM युग में वापस आ गए हैं :) उन सभी अद्भुत .NET सम्मेलन गायब हो गए प्रतीत होते हैं .. एक अच्छी बात .. कम से कम आपको TileUpdateFactory.CoCreateTileUpdaterForAppEx को कॉल करने की आवश्यकता नहीं है –